2017-01-06 9 views
1

Androidで自分のアプリで撮影したmediaPlayerを使用して動画を再生します。Androidで録画した動画を再生できません

IセットアップmediaPlayerこの方法:

private void setUpMediaRecorder() throws IOException { 
    final Activity activity = getActivity(); 
    if (null == activity) { 
     return; 
    } 
    mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE); 
    mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
    if (mNextVideoAbsolutePath == null || mNextVideoAbsolutePath.isEmpty()) { 
     mNextVideoAbsolutePath = getVideoFilePath(); 
    } 
    mMediaRecorder.setOutputFile(mNextVideoAbsolutePath); 
    mMediaRecorder.setVideoEncodingBitRate(10000000); 
    mMediaRecorder.setVideoFrameRate(30); 
    mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight()); 
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); 
    mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 
    int rotation = activity.getWindowManager().getDefaultDisplay().getRotation(); 
    switch (mSensorOrientation) { 
     case SENSOR_ORIENTATION_DEFAULT_DEGREES: 
      mMediaRecorder.setOrientationHint(ORIENTATIONS.get(rotation)); 
      break; 
     case SENSOR_ORIENTATION_INVERSE_DEGREES: 
      mMediaRecorder.setOrientationHint(INVERSE_ORIENTATIONS.get(rotation)); 
      break; 
    } 
    mMediaRecorder.prepare(); 
} 

private void stopRecordingVideo() { 
    mMediaRecorder.stop(); 
    mMediaRecorder.reset(); 
} 

return Environment.getExternalStorageDirectory() + "/" 
      + time + ".mp4"; // path, where the video should be stored 

そして私は、私は次のエラーを取得取らビデオ再生したい:This video cannot be playedを。
これはなぜ機能していないのですか?私もAndroid-camera2videoの例を試してみましたが、コードが動作していません。

+0

は、あなたがビデオを持っている(壊れていないことを確認していますあなたはaleradyがvlc playerでそれをテストしましたか?)モバイルデバイスがビデオコーデックH264をサポートしていることを確かめていますか(インターネットからのビデオでそれをテストしましたか?) – reporter

+0

うーん、ビデオの名前が問題になることはありますか?私のビデオの名前を 'video.mp4'と指定した場合、それは動作しています – mafioso

+0

ファイル名のための独自のルール – reporter

答えて

0

あなたのコードからは、時間+「.mp4」を名前として使用しているようです。

「時間」には、パスの解像度(たとえば/)を混乱させるか、何らかの理由でファイルの拡張子を混乱させる文字が含まれている可能性が最も高いです。例えば。

あなたはファイル名に日付を追加したい場合、あなたは、例えば「安全」形式にそれを得るために、フォーマッタを使用することができます。

SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss"); 
関連する問題