2016-04-20 9 views
2

ich von android camera2 sampleAndroid camera2 Verzögerung zwischen dem Video auf den Klang

Alle auf Video aufnehmen, ich versuche, funktioniert gut, aber wenn ich das Video abspielen nach (von der SD-Karte) aufnehmen, das Video beginnt das Einfrieren und Sie können hören nur das Audio im Hintergrund und wenn das Audio stoppt, spielt das Video zu starten, ohne die Audio- und die Zeit des Videos springt von Sekunden bis minites (03:24)

private void setUpMediaRecorder() throws IOException { 
    mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE); 
    mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 

    mMediaRecorder.setOutputFile(getVideoFile().getAbsolutePath()); 
    mMediaRecorder.setVideoEncodingBitRate(10000000); 
    mMediaRecorder.setVideoFrameRate(30); 
    //mMediaRecorder.setMaxDuration(60000); // Set max duration 60 sec. 
    mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight()); 
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); 
    mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 


    int rotation = getWindowManager().getDefaultDisplay().getRotation(); 
    int orientation = ORIENTATIONS.get(rotation); 

    if (mCameraType == 1) { 
     if (orientation == 90) { 
      mMediaRecorder.setOrientationHint(270); 
     } else if (orientation == 270) { 
      mMediaRecorder.setOrientationHint(90); 
     } 
    } 
    else { 
     mMediaRecorder.setOrientationHint(orientation); 
    } 
    mMediaRecorder.prepare(); 
} 

Figur heraus, dass es ohne diese Linien funktioniert :

mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 

Wie kann ich es mit Sound arbeiten lassen?

Die dumme Lösung ist das Gerät neu zu starten. Weiß jemand, warum passiert das?

Vielen Dank für

+1

Können Sie das Problem beheben? Ich habe das gleiche Problem auf einem Samsung S7 (API Level 24), aber nicht auf einem Sony Xperia Tablet (API Level 22). Vielleicht ist es eine Art Hardware/Firmware-Problem? – medonja

+0

Mögliches Duplikat von [Camera2-Videoaufnahme ohne Vorschau auf Android: mp4-Ausgabedatei nicht vollständig abspielbar] (http://stackoverflow.com/questions/37767511/camera2-video-recording-without-preview-on-android-mp4-output -file-nicht-voll-pl) – luca992

Antwort

0

helfen mit zu beginnen, versuchen, die CamcorderProfile API mit MediaRecorder.setProfile die MediaRecorder Werte einzustellen.

Wählen Sie die gewünschte Auflösung aus der Liste der unterstützten Profile aus, und die empfohlenen Audio-/Videocodierungseinstellungen werden beim Aufruf von setProfile nach dem Einstellen der Audio- und Videoquellen festgelegt.

Sie sollten auch die CAMCORDER Audioquelle verwenden, nicht MIC, aber das sollte nicht dazu führen, dass die Aufnahme bricht.