Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MediaRecorder:启动失败:-2147483648_Android_Video Streaming - Fatal编程技术网

Android MediaRecorder:启动失败:-2147483648

Android MediaRecorder:启动失败:-2147483648,android,video-streaming,Android,Video Streaming,我已经工作了一段时间的android摄像头视频流。我首先尝试了libstreaming包,但遇到了问题。因此,我按照谷歌相机的示例编写了自己的类。但是,在我将一个ParcelFileDescriptor传递给mMediaRecorder.setOutputFile之后,我得到了以下错误: E/MediaRecorder: start failed: -2147483648 D/AndroidRuntime: Shutting down VM E/AndroidRuntime: FATAL EXC

我已经工作了一段时间的android摄像头视频流。我首先尝试了libstreaming包,但遇到了问题。因此,我按照谷歌相机的示例编写了自己的类。但是,在我将一个
ParcelFileDescriptor
传递给
mMediaRecorder.setOutputFile
之后,我得到了以下错误:

E/MediaRecorder: start failed: -2147483648
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: sharedcameraandroid, PID: 14868
java.lang.RuntimeException: start failed.
at android.media.MediaRecorder.start(Native Method)
at MainActivity.startRecordingVideo(MainActivity.java:268)
at MainActivity.setUpMediaRecorder(MainActivity.java:257)
所以我在线查看并找到(将outputformat更改为3GPP)、添加Thread.sleep和。但它们都不起作用。所以我来问是否有人知道如何解决这个问题

这是我的密码:

private void setUpMediaRecorder() throws IOException {
    final Activity activity = mActivity;
    if (null == activity) {
        return;
    }

    ParcelFileDescriptor[] parcelFileDescriptors = ParcelFileDescriptor.createPipe();
    mParcelRead = new ParcelFileDescriptor(parcelFileDescriptors[0]);
    mParcelWrite  = new ParcelFileDescriptor(parcelFileDescriptors[1]);

    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
    mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
//        mMediaRecorder.setOutputFile((new File(mActivity.getExternalFilesDir(null), "video.mp4")).getAbsolutePath());
//        Log.d(TAG, (new File(mActivity.getExternalFilesDir(null), "video.mp4")).getAbsolutePath());
    mMediaRecorder.setOutputFile(mParcelWrite.getFileDescriptor());
    mMediaRecorder.setVideoEncodingBitRate(10000000);
    mMediaRecorder.setVideoFrameRate(30);
    // mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight());
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
    mMediaRecorder.prepare();
    startRecordingVideo();
    // https://stackoverflow.com/questions/14598299/how-to-record-video-on-android-into-stream

    InputStream is = new ParcelFileDescriptor.AutoCloseInputStream(mParcelRead);
    RtspClient client = new RtspClient(is, releaseSampleFile());
    client.startStream();
}
如果我更改
mMediaRecorder.setOutputFile(mParcelWrite.getFileDescriptor())有了注释行,一切都很好


谢谢你的帮助

你有解决这个问题的办法吗。。我也面临同样的问题。遗憾的是,没有。。。我用了另一个流媒体软件包,你能告诉我们其他流媒体软件包吗。我们能够使用带有媒体编解码器API 2的libstreaming库,视频质量更低