• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

android - MediaRecorder:启动失败:-2147483648

[复制链接]
菜鸟教程小白 发表于 2022-12-9 06:18:24 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我在 23+ api 上发现了这个异常。在 api 22 及更低版本上,一切正常。你能帮我找到解决办法吗? 我正在使用 23 api 目标并尝试了不同的配置,但仍然有问题

E/MediaRecorder: start failed: -2147483648
W/System.err: java.lang.RuntimeException: start failed. W/System.err: at android.media.MediaRecorder.start(Native Method)
W/System.err: at com.ksy.recordlib.service.recoder.RecoderVideoSource.prepare(RecoderVideoSource.java:105)
W/System.err: at com.ksy.recordlib.service.recoder.RecoderVideoSource.run(RecoderVideoSource.java:173) 
W/System.err: at java.lang.Thread.run(Thread.java:818)

我发现,崩溃的原因是我的输出

 >try {
 >   this.piple = ParcelFileDescriptor.createPipe();
 >} catch (IOException e) {
 >   e.printStackTrace();
 >}
 >mediaRecorder.setOutputFile(this.piple[1].getFileDescriptor());

我该如何解决这个问题?



Best Answer-推荐答案


由于 Android API 级别 = 23,因此在编码 MPEG4 视频时不再可能使用不可搜索的文件描述符(ParcelFileDescriptor 也是如此)。可以在 commit 中看到MPEG4Writer 已被修改为在检测到不可查找的文件描述符时打印错误并退出。

为方便起见,在下面粘贴提到的代码:

// Verify mFd is seekable
off64_t off = lseek64(mFd, 0, SEEK_SET);
if (off < 0) {
    ALOGE("cannot seek mFd: %s (%d)", strerror(errno), errno);
    release();
}

关于android - MediaRecorder:启动失败:-2147483648,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34317655/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap