首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓2.3设备上的Android MediaPlayer错误(1,-38)

安卓2.3设备上的Android MediaPlayer错误(1,-38)
EN

Stack Overflow用户
提问于 2014-08-13 00:55:25
回答 1查看 1.9K关注 0票数 1

最近被分配了一项任务来开发一个安卓应用程序,通过WiFI播放RTSP流。该应用程序在SurfaceView上使用Android SurfaceView类,同样的代码在Android4.2、4.3和4.4上运行,但是当在2.3上试用它时,在调用MediaPlayer.start()函数后,会出现安卓MediaPlayer错误(1,-38)。

经过几天的集思广益后,我找到了答案,并想分享给大家节省时间,因为网上有关这个问题的信息非常有限(可能我搜索得不够努力:)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-13 01:00:50

只是为了回答我自己的问题来分享我的发现。

为了解决在Android2.3设备上调用mediaPlayer.start()后出现的mediaPlayer.start错误(1,-38)问题,只需在设置表面保持器后添加以下子句即可。

代码语言:javascript
运行
复制
 `...;     surfaceHolder_.addCallback(this);     surfaceHolder_.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);     mediaPlayer_ = new MediaPlayer();     ...;` 

对于相当于或高于蜂窝的设备,我们不需要设置表面支架类型,框架将自动处理附加到媒体播放器的表面视图,这就是为什么代码在Android4.0中工作,但在2.3中不起作用。因此,我们可以使用条件语句来保护表面持卡器setType子句,如下所示:

代码语言:javascript
运行
复制
 `if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {         surfaceHolder_.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);     }`
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25276459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档