社区
Android
帖子详情
mediaplayer问题
kaonilaomua
2011-12-06 11:00:53
就是setdatasource()io异常,但我遇到这个异常的时候我用setErrorListener怎么监听不到呢,在OnCompletionListener中却可以监听到,我是想遇到io异常就播下一个视频文件,循环播放,高手帮帮我啊
...全文
155
7
打赏
收藏
mediaplayer问题
就是setdatasource()io异常,但我遇到这个异常的时候我用setErrorListener怎么监听不到呢,在OnCompletionListener中却可以监听到,我是想遇到io异常就播下一个视频文件,循环播放,高手帮帮我啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kaonilaomua
2011-12-17
打赏
举报
回复
虽然没解决,但还是感谢你们
ahaso
2011-12-07
打赏
举报
回复
你可以打印些log看看如果非正常结束的话,运行到哪一步,加个全局变量在那一步后面改变全局变量的值,在oncompetition中就能判断了啊
kaonilaomua
2011-12-07
打赏
举报
回复
这是我的主要代码
//播放器的设置
public void player()
{
if(mMediaPlayer!=null&&mMediaPlayer.isPlaying())
{
mMediaPlayer.stop();
}
mMediaPlayer.reset();
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnCompletionListener(
new MediaPlayer.OnCompletionListener()
{
// @Override
/*覆盖文件播出完毕事件*/
public void onCompletion(MediaPlayer arg0)
{
if(checkIO==0)
{
try
{ video++; //下一个视屏文件
if(video==listVideo.size())
{
video=0;
}
player();
}
catch (Exception e)
{
e.printStackTrace();
}
Toast.makeText(MediaActivity.this,"视频",Toast.LENGTH_LONG).show();
checkError=0;
}else{
}
}
});
/* 当MediaPlayer.OnErrorListener会运行的Listener */
mMediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener()
{
@Override
/*覆盖错误处理事件*/
public boolean onError(MediaPlayer arg0, int arg1, int arg2)
{
// TODO Auto-generated method stub
pro.setExp(arg1+"");
// int i=MediaPlayer.MEDIA_ERROR_SERVER_DIED;
checkPlayer=video;
checkError++; //不可播放文件个数
if(checkError>listVideo.size())
{
if(mMediaPlayer!=null&&mMediaPlayer.isPlaying())
{
mMediaPlayer.stop();
}
Toast.makeText(MediaActivity.this,"无可播放视频文件,请上传可播放视频",Toast.LENGTH_LONG).show();
//checkError=0;
}else
{
Toast.makeText(MediaActivity.this,listVideo.get(checkPlayer)+"视频不能播放,请删除",Toast.LENGTH_SHORT).show();
try
{
video++;
if(video==listVideo.size())
{
video=0;
}
player();
}
catch (Exception e)
{
e.printStackTrace();
}
}
return true;
}
});
try {
mMediaPlayer.setDisplay(surfaceHolder);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setDataSource(path+"/"+listVideo.get(video));
mMediaPlayer.prepareAsync();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//checkIO=1;
//checkError++;
Toast.makeText(MediaActivity.this,listVideo.get(video),Toast.LENGTH_SHORT).show();
}
}
kaonilaomua
2011-12-07
打赏
举报
回复
llxxhm,你的代码是怎么写的,能不能给点代码,我在OnCompletionListener中有处理,就是播下一首,可是他不播黑屏,只有在catch(){}中加setdatasource("下一首path")才播,
ahaso:怎么判断非正常结束呢
ahaso
2011-12-07
打赏
举报
回复
同意1楼,加个全局判断的变量就能判断出是否是非正常结束要做什么处理了。
QQ515311445
2011-12-07
打赏
举报
回复
在OnCompletionListener里面处理就行了,我就是这么做的.
kaonilaomua
2011-12-07
打赏
举报
回复
我机子没有数据线,所以不能连接调试,我在try{}catch中改变全局变量,发现oncompetition中的代码比catch中的代码更早执行
Android下
MediaPlayer
播放MP3示例
Android下
MediaPlayer
播放MP3示例,详细参见博客:http://www.cnblogs.com/plokmju/p/android_
MediaPlayer
.html
TextureView+
Mediaplayer
实现本地视频播放
TextureView+
Mediaplayer
实现本地视频播放
Android
MediaPlayer
与Http Proxy结合之基础篇
如何实现一个简单的代理服务器(仅支持Http Get),与Android的
MediaPlayer
结合,从而可以扩展出“播放 反盗链的媒体文件”,“边播放边保存”的功能。
玩转 Android
MediaPlayer
之视频预加载
理服务器:预先下载媒体的头部(头部Size为 s1 byte)->监听播放器的请求,当Request的是预加载的URL->代理把媒体头部作为Response返回给播放器,并改Ranage 为 s1 byte 发送Request->代理服务器纯粹作为透传。
玩转 Android
MediaPlayer
之Media Proxy
在《Android
MediaPlayer
与Http Proxy结合之提高篇》基础上,进一步优化代理服务器,支持了Http的302、301重定向,清晰获取Http Request和Http Response的文本内容。本文以视频播放结合Http Proxy,讲述
MediaPlayer
...
Android
80,337
社区成员
91,284
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章