Android視訊錄製,儲存圖片,視訊到本地後本地相簿或者視訊庫裡面沒有的解決方案
阿新 • • 發佈:2019-02-18
1 問題:最近要做一個將伺服器視訊儲存到本地的功能,將視訊儲存到本地後發現本地相簿裡面並沒有更新該視訊,糾其原因是系統的媒體資料庫並沒有實時的更新
2 解決方案:利用MediaScannerConnection主動去掃描掃描媒體資料庫
步驟:1.在Activity onCreate裡面建立成員變數MediaScannerConntion並呼叫MediaScannerConntion.connect();
2.在需要更新媒體資料庫的地方呼叫MediaScannerConntion.scanFile()
3.在onDestroy裡面斷開連線MediaScannerConntion.disconnect();
3 具體程式碼如下:
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(); } } }