Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android 相片管理專題之視頻捕捉

Android 相片管理專題之視頻捕捉

編輯:關於android開發

這節課主要講述怎樣利用設備已安裝的相機應用程序來進行視頻捕捉。

假如您的應用中有一個功能是視頻整合,但是您又不想編寫太復雜的代碼來自己控制相機的視頻捕捉,幸好,大多數Android設備已至少安裝有一個相機程序,本課程就教您怎麼樣利用設備自帶的相機應用來拍攝視頻。


 

申請相機權限

如果您的應用的基本功能就是拍照或拍攝視頻,需要在Android Market 中進行可見性限制,只有擁有攝像頭的設備才能浏覽和下載您的應用程序,那麼您需要在manifest 文件的 tag中加入權限限制。

   <manifest ... >
     <uses-feature android:name="android.hardware.camera" />
     ...
   </manifest ... >

如果您的應用在設備沒有相機的情況下仍能正常工作,那麼可以在該tag中加入android:required=”false”。設定以後,所有的設備不管有沒有攝像頭都可以在Android Market 上面浏覽和下載您的應用。但是,您需要自己在運行時檢測設備是否有攝像頭,調用方法即可,如果相機不可用,那麼您就需要禁用應用中與拍照或拍攝視頻有關的功能模塊。

用相機錄制視頻

在Andriod系統中,您的應用要委托其他的應用幫忙完成一些工作,可以使用,把期望完成的任務和參數列表設置到中,然後通過系統廣播出去,最後當其他應用完成工作的時候,您的應用可以收到一個反饋信息,在回調函數中就可以取得任務處理結果。調用相機程序錄制視頻的過程與上面描述的類似,有三個關注點,定義拍攝視頻的 ,啟動其他相機應用,處理拍攝後的視頻流數據。

示例代碼,啟動視頻錄制應用

   private void dispatchTakeVideoIntent() {
    Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    startActivityForResult(takeVideoIntent, ACTION_TAKE_VIDEO);
  }

一個好的習慣是,在調用上面的代碼前首先檢查設備中是否有內置相機應用程序可以處理您的請求,示例代碼如下:

   public static boolean isIntentAvailable(Context context, String action) {
    final PackageManager packageManager = context.getPackageManager();
    final Intent intent = new Intent(action);
    List<ResolveInfo> list =
        packageManager.queryIntentActivities(intent,
            PackageManager.MATCH_DEFAULT_ONLY);
    return list.size() > 0;
  }

查看視頻

捕獲的視頻流數據會通過回調函數返回到您的應用中,您可以從 中獲得該視頻數據的地址,示例代碼展示了如何將捕獲到的視頻數據顯示在界面中。

   private void handleCameraVideo(Intent intent) {
    mVideoUri = intent.getData();
    mVideoView.setVideoURI(mVideoUri);
  }

參考文摘:

 

原文:http://blog.zhourunsheng.com/2012/01/android-%e7%9b%b8%e7%89%87%e7%ae%a1%e7%90%86%e4%b8%93%e9%a2%98%e4%b9%8b%e8%a7%86%e9%a2%91%e6%8d%95%e6%8d%89/ | 潤物無聲

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved