簡單的Android視頻拍攝程序
如果你的應用程序只是要集成很小一部分的視頻功能,那么你可以使用大多數Android設備上已經提供的Camera應用程序來拍攝視頻。
申請Camera權限
在清單文件中放一個<uses-feature>標簽,給你的應用程序申請對攝像頭的依賴:
<manifest ...>
<uses-feature android:name="android.hardware.camera" />
...
</manifest ... >
如果你的應用程序對攝像頭的使用不是必須的,那么就給這個標簽添加android:required=”false”屬性。這樣,Google Play就會允許沒有攝像頭的設備來下載你的應用程序。然后,由你的應用程序自己來負責檢查其運行的設備上是否有可用的攝像頭,通過調用hasSystemFeature(PackageManager.FEATURE_CAMERA)方法來完成功能檢查。如果沒有可用的攝像頭,那么就禁用對應的攝像功能。
用Camera應用程序來拍攝視頻
Android系統使用一個描述你的意圖的Itent對象,把相關的操作委托給其他應用程序。這種調用分三段來完成:1.創建Intent對象;2.調用要啟動的外部Activity;3.焦點返回你的Activity時處理視頻的代碼。
以下函數調用一個Intent來拍攝視頻:
privatevoiddispatchTakeVideoIntent(){
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(takeVideoIntent,ACTION_TAKE_VIDEO);
}
最好的做法是在調用這個方法之前,確保會有一個應用程序能夠處理你的Intent對象。以下是一個能夠檢查是否有處理你的Intent對象的應用程序的函數:
publicstaticbooleanisIntentAvailable(Context context,String action){
final PackageManagerpackageManager = context.getPackageManager();
final Intent intent = new Intent(action);
List<ResolveInfo> list =
packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
瀏覽視頻
Android的Camera應用程序會在返回給調用者onActivityResult()回調方法的Intent參數中攜帶一個指向視頻存儲位置的Uri。以下是接收視頻并在VideoView中顯示的視頻的代碼:
privatevoidhandleCameraVideo(Intent intent){
mVideoUri = intent.getData();
mVideoView.setVideoURI(mVideoUri);
}
來自:http://blog.csdn.net/fireofstar/article/details/9219659
本文譯自:http://developer.android.com/training/camera/videobasics.html