簡體   English   中英

Android Media Recorder停止例外

[英]Android Media Recorder Stop Exception

我正在從Android媒體錄制器錄制視頻和音頻......
我正在檢查剪輯長度,如果不到2秒,刪除它...
但問題是,如果我從文件路徑檢查文件的持續時間,MediaRecorder會在拋出異常后每次拋出異常,即使我錄制了10秒的音頻?
但是當我評論代碼來檢查視頻創建的持續時間時,它會變得很糟糕......
以下是我的代碼

if (prMediaRecorder != null) {
    try {
        prMediaRecorder.stop();
        timer.cancel();
        PathNameArray.add(prRecordedFile.getPath());
        Log.e("No Exception", "File Added and Saved");

        ////////////// Check Length and Delete File
        if (prRecordedFile != null) {
            if (MediaPlayer.create(getApplicationContext(), Uri.fromFile(new File(
                            prRecordedFile.getPath()))).getDuration() <= 2000) {

                File file = new File(prRecordedFile.getPath());
                boolean deleted = file.delete();
                Toast.makeText(getApplicationContext(),
                        "Video Clip Length Too Short, Clip Not Added",
                        Toast.LENGTH_SHORT).show();

                PathNameArray.remove(PathNameArray.size() - 1);
            }
        }

    } catch (RuntimeException e) {
        Toast.makeText(getApplicationContext(),
                "Corrupt Clip, Clip Not Added",
                Toast.LENGTH_SHORT).show();
        File file = new File(prRecordedFile.getPath());
        boolean deleted = file.delete();
        timer.cancel();
        Log.e("Exception Caught", "File Not Added");

    } finally {
        try {
            prCamera.reconnect();
        } catch (IOException e) {

            e.printStackTrace();
        }
    }
}

prMediaRecorder = new MediaRecorder();
MarkerName = null;

請幫幫我,我的代碼有什么問題或什么?

我解決了這個問題,
問題是我從MediaPlayer獲得持續時間的方式
相反,我使用此代碼,它已修復...

//////////////// Check Length and Delete File
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(prRecordedFile.getPath());
String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
long timeInmillisec = Long.parseLong(time);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM