注:本文翻譯自Google官方的Android Developers Training文檔,譯者技術(shù)一般,由于喜愛安卓而產(chǎn)生了翻譯的念頭,純屬個人興趣愛好。
原文鏈接: http://developer.android.com/training/camera/videobasics.html
這節(jié)課將展示如何利用現(xiàn)有的相機應(yīng)用來錄制視頻。
假設(shè)你的應(yīng)用有一個巨大的任務(wù),而集成視頻是它的一部分。你希望盡可能簡單地錄制視頻,并且不要因此而重新構(gòu)建一個攝像的程序。幸好,Android設(shè)備上已經(jīng)有了一個可以錄制視頻的相機應(yīng)用,在這節(jié)課中,你將會讓它來為你的應(yīng)用服務(wù)。
一). 請求相機權(quán)限?
要聲明你的應(yīng)用需要依賴攝像頭,在清單文件中加入 <uses-feature> 標(biāo)簽:
< manifest ... > < uses-feature android:name ="android.hardware.camera" android:required ="true" /> ... </ manifest >
如果你的應(yīng)用使用,但并不依賴一個相機來執(zhí)行功能,那么將“ android:required ”設(shè)置為“ false ”。這樣的話,那么Google Play將會允許沒有相機的設(shè)備下載你的應(yīng)用。那么接下來就是你的責(zé)任負責(zé)相機是否可用了,在運行時如果調(diào)用了需要用相機的函數(shù)時,通過調(diào)用 hasSystemFeature(PackageManager.FEATURE_CAMERA) 檢查是否可以獲取相機。如果相機無法獲取,那么你就應(yīng)該禁止你的相關(guān)功能特性。
二). 通過一個相機應(yīng)用錄制視頻
在Android中向其它應(yīng)用分發(fā)意圖是通過激活一個描述你的意圖的 Intent 。這一過程分為三步: Intent 自身,調(diào)用外部 Activity ,當(dāng)焦點回到你的activity中處理視頻數(shù)據(jù)的一些代碼。
下面的例子是激活一個intent來錄制視頻:
static final int REQUEST_VIDEO_CAPTURE = 1 ; private void dispatchTakeVideoIntent() { Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); if (takeVideoIntent.resolveActivity(getPackageManager()) != null ) { startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE); } }
注意這里
startActivityForResult()
方法被一個前提所保護,那就是通過調(diào)用
resolveActivity()
,返回第一個可以處理該intent的組件。執(zhí)行這個檢查時很重要的因為如果你調(diào)用了
startActivityForResult()
并使用一個沒有一個應(yīng)用可以處理的intent,你的應(yīng)用將會崩潰。所以只要結(jié)果不是null,那么使用這個intent是安全的。
三). 查看視頻
Android相機應(yīng)用會在 onActivityResult() 方法中將視頻以一個指向視頻存儲位置的 Uri 的形式,放置在 Intent 中,并將其返回。下面的代碼即獲取這個視頻并且在 VideoView 中顯示它:
@Override protected void onActivityResult( int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) { Uri videoUri = intent.getData(); mVideoView.setVideoURI(videoUri); } }
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
