gpt4 book ai didi

Android MediaRecorder : start failed: -2147483648

转载 作者:行者123 更新时间:2023-12-04 23:43:11 26 4
gpt4 key购买 nike

我已经工作了一段时间的 android 相机视频流。我首先尝试了 libstreaming 包,但有 this问题。所以我跟着谷歌相机样本code写我自己的课。但是在我通过 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)

于是上网查了一下,发现 this (将输出格式更改为 3GPP), thisadd Thread.sleepthis .但他们都没有工作。所以我来问是否有人知道如何解决这个问题。

这是我的代码:
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());使用注释行,一切都很好。

谢谢你的帮助!

最佳答案

最近我在我的项目中遇到了这个问题。所以尝试改变一些参数。幸运的是,当我将 OutputFormat 更改为 MPEG_2_TS 时,它起作用了。
所以我要说的是将输出格式更改为 MPEG_2_TS。它对我有用。所以希望它对你有用。

关于Android MediaRecorder : start failed: -2147483648,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36214649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com