日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

【Android Developers Training】 49. 輕松錄制

系統(tǒng) 2155 0

注:本文翻譯自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);

    }

}
      
    

【Android Developers Training】 49. 輕松錄制視頻


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 青阳县| 昭觉县| 内江市| 渭源县| 山阳县| 明水县| 汝城县| 老河口市| 镇赉县| 文水县| 吉木萨尔县| 菏泽市| 神农架林区| 集贤县| 奇台县| 长岛县| 阜新| 望江县| 广元市| 翼城县| 宁化县| 嘉峪关市| 当阳市| 潼南县| 阿克苏市| 乌拉特前旗| 喜德县| 西畴县| 新晃| 化德县| 永定县| 赤城县| 辽阳县| 左权县| 霍州市| 甘泉县| 涟源市| 建瓯市| 宜兰县| 长沙县| 丰台区|