android - MediaRecorder.stop() 在三星 Galaxy 相机上挂起

标签 android freeze mediarecorder

在我的 MediaRecorder 上调用 stop() 在 Samsung Galaxy Camera 上无限期挂起。将此调用放在单独的线程中也无助于解决问题。

Logcat 不显示任何错误消息。但是,在 Samsung Galaxy Nexus 上运行同一个应用程序不会出现任何问题。

这是围绕我调用 stop 的代码:

View.OnClickListener captureListener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (isRecording) {
            // stop recording and release camera
            mMediaRecorder.stop();
            releaseMediaRecorder(); // release the MediaRecorder object
            mCamera.lock();         // take camera access back from MediaRecorder
            // inform the user that recording has stopped
            captureButton.setText("Capture");
            isRecording = false;
        } else {
            // initialize video camera
            if (prepareVideoRecorder()) {
                // Camera is available and unlocked, MediaRecorder is prepared,
                // now you can start recording
                mMediaRecorder.start();
                // inform the user that recording has started
                captureButton.setText("Stop");
                isRecording = true;
            } else {
                // prepare didn't work, release the camera
                releaseMediaRecorder();
                // inform user
            }
        }
    }
};

最佳答案

我看到的一件事是,对于某些设备,如果没有附加预览(即您之前调用过 Camera.stopPreview() 或者您可能从未调用过 startPreview()),MediaRecorder.stop() 会挂起。

关于android - MediaRecorder.stop() 在三星 Galaxy 相机上挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14944300/

相关文章:

Android SearchView不进入onQueryTextChange

android - Firebase 函数在 10 秒后在客户端超时

C# Windows 窗体应用程序函数循环

android - 将前置摄像头和后置摄像头用于单个视频

android - MediaRecorder启动失败-2147483648

java - 点击 Android 对话框外部以将其关闭?

android - 如何使用 MediaSessianCompat 进行媒体播放?

java - JVM 在 windows Server 2008 R2 下停在 2GB

PHP TCP 套接字服务器在接受新连接时挂起

android - 如何触发声音输入的振动?