【发布时间】:2015-01-15 10:26:09
【问题描述】:
我正在新的 Android Lollipop 上测试 libstreaming,而在之前版本中运行的这段代码似乎启动了异常。
try {
mMediaRecorder = new MediaRecorder();
mMediaRecorder.setCamera(mCamera);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mMediaRecorder.setVideoEncoder(mVideoEncoder);
mMediaRecorder.setPreviewDisplay(mSurfaceView.getHolder().getSurface());
mMediaRecorder.setVideoSize(mRequestedQuality.resX,mRequestedQuality.resY);
mMediaRecorder.setVideoFrameRate(mRequestedQuality.framerate);
// The bandwidth actually consumed is often above what was requested
mMediaRecorder.setVideoEncodingBitRate((int)(mRequestedQuality.bitrate*0.8));
// We write the ouput of the camera in a local socket instead of a file !
// This one little trick makes streaming feasible quiet simply: data from the camera
// can then be manipulated at the other end of the socket
mMediaRecorder.setOutputFile(mSender.getFileDescriptor());
mMediaRecorder.prepare();
mMediaRecorder.start();
} catch (Exception e) {
throw new ConfNotSupportedException(e.getMessage());
}
启动的异常是:
MediaRecorder:启动失败 -38
11-18 09:50:21.028: W/System.err(15783): net.majorkernelpanic.streaming.exceptions.ConfNotSupportedException
11-18 09:50:21.028: W/System.err(15783): at net.majorkernelpanic.streaming.video.VideoStream.encodeWithMediaRecorder(VideoStream.java:442)
11-18 09:50:21.028: W/System.err(15783): at net.majorkernelpanic.streaming.MediaStream.start(MediaStream.java:250)
我已尝试发表评论:
mMediaRecorder.setOutputFile(mSender.getFileDescriptor());
没有异常启动,但是当我开始流式传输时,一个对话框告诉我需要一个输出文件。
帮助表示赞赏。
【问题讨论】:
-
我想我遇到了类似的错误。我正在尝试写入本地套接字以流式传输音频/视频,但是在出现 -38 错误 E/StagefrightRecorder :输出文件描述符无效之后。根据android.googlesource.com/platform/frameworks/av/+/master/media/… 第752 行的错误输出。当文件描述符小于0 时,意味着-1 默认哨兵值。除了我在设置输出文件之前验证我将描述符设置为 136。
-
你用的是哪个安卓版本?
-
这个问题只在棒棒糖上。当它们在 kitkat 上时,相同的 nexus 5 和相同的 nexus 7 设备上的相同代码可以工作。我现在很确定问题与套接字有关,但我仍在努力寻找可能发生的变化。
-
对我来说也是如此...不幸的是,直到现在在网络上都没有找到任何东西...
-
在 Android 5.0 中使用 ParcelFileDescriptor 效果很好,但我在使用 MediaRecorder 时遇到了视频颜色问题。颜色与实际颜色和以前的 Android 版本不同。我认为颜色格式错误。你遇到了吗@andreasperelli?
标签: android exception streaming mediarecorder