1. 程式人生 > >Android視訊錄製,儲存圖片,視訊到本地後本地相簿或者視訊庫裡面沒有的解決方案

Android視訊錄製,儲存圖片,視訊到本地後本地相簿或者視訊庫裡面沒有的解決方案

   1 問題:最近要做一個將伺服器視訊儲存到本地的功能,將視訊儲存到本地後發現本地相簿裡面並沒有更新該視訊,糾其原因是系統的媒體資料庫並沒有實時的更新
   2 解決方案:利用MediaScannerConnection主動去掃描掃描媒體資料庫
            步驟:1.在Activity onCreate裡面建立成員變數MediaScannerConntion並呼叫MediaScannerConntion.connect();
                      2.在需要更新媒體資料庫的地方呼叫MediaScannerConntion.scanFile()
                      3.在onDestroy裡面斷開連線MediaScannerConntion.disconnect();
   3 具體程式碼如下:
public class MediaScanActivity extends BaseActivity {

    private MediaScannerConnection mMediaScannerConnection;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //1.建立MediaScannerConnection
        mMediaScannerConnection = new MediaScannerConnection(this, null);
        //呼叫connect
        mMediaScannerConnection.connect();
    }

    /**
     * @param filePath 儲存到本地的檔案路徑
     * @param isVideo  是否是視訊
     */
    private void scanFile(String filePath, boolean isVideo) {
        if (mMediaScannerConnection != null) {
            if (isVideo) {
                //主動掃描視訊
                mMediaScannerConnection.scanFile(filePath, "video/mp4");
            } else {
                //主動掃描圖片
                mMediaScannerConnection.scanFile(filePath, "image/jpeg");
            }
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mMediaScannerConnection != null) {
            //釋放連線
            mMediaScannerConnection.disconnect();
        }
    }
}