小编Alj*_*oSt的帖子

Android:在同一SurfaceView中录制和播放视频

我想在SurfaceView中看到我正在录制的视频,如果重新编写完成,我想在同一个SurfaceView中重放视频.即使我认为这将是Apps中的常见功能,但我找不到任何示例,也无法使我的代码工作.

private void prepareRecorder() {
try {
    recorder = new MediaRecorder();
    recorder.setPreviewDisplay(holder.getSurface());

    camera.unlock();
    recorder.setCamera(camera);

    recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
    recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);

    camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_LOW);
    recorder.setProfile(camcorderProfile);

    File newFile = new File(videoFilePath);

    recorder.setOutputFile(newFile.getAbsolutePath());

    try {
        recorder.prepare();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}catch(Exception e){
    releaseCamera();
}
}
Run Code Online (Sandbox Code Playgroud)

//

public void onClick(View v) {


    if(mediaPlayer!=null) {
        mediaPlayer.reset();
        mediaPlayer.release();
    }
    mediaPlayer = new MediaPlayer();



    try {
        mediaPlayer.setDataSource(videoFile.getAbsolutePath());
        SurfaceView surfaceView = (SurfaceView) getView().findViewById(R.id.videoInvitationFragSurfaceView);

        mediaPlayer.setSurface(surfaceView.getHolder().getSurface());
        mediaPlayer.prepareAsync();
        mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mediaPlayer) …
Run Code Online (Sandbox Code Playgroud)

android surfaceview android-mediaplayer android-mediarecorder

5
推荐指数
1
解决办法
1538
查看次数