近日在做一个学习法语的小应用,被MP3AB段复读的功能困扰了很久,最后终于在网上找到一个解决方法,就是使用CountDownTimer让MediaPlayer只播放MP3的某个区段,轻松解决了AB段复读的功能。详细代码如下:
public void play(final String filePath) throws Exception {
try {
if (mMediaPlayer == null) {
// 创建MediaPlayer对象并设置Listener
mMediaPlayer = new MediaPlayer();
} else {
// 复用MediaPlayer对象
mMediaPlayer.reset();
}
mMediaPlayer.setDataSource(filePath);
mMediaPlayer.prepare();
mMediaPlayer.setVolume(10.f, 1.0f);
// 复读第10秒到第20秒这个区间的音频
int startPos = 10000;
int endPos = 20000;
// Try to play three times
repeatAToB(startPos, endPos, 3);
} catch (Exception e) {
e.printStackTrace();
}
}
private void repeatAToB(final int startPos, final int endPos, final int repeatTimes)throws Exception {
mMediaPlayer.seekTo(startPos);
mMediaPlayer.start();
CountDownTimer cntr_aCounter = new CountDownTimer(/* millisInFuture= */endPos - startPos, /* countDownInterval= */1000) {
public void onTick(long millisUntilFinished) {
// DO SOMETHING
}
public void onFinish() {
// Code fire after finish
if((repeatTimes - 1) > 0){
try {
repeatAToB(startPos, endPos, repeatTimes - 1);
} catch (Exception e) {
e.printStackTrace();
}
}else{
mMediaPlayer.stop();
}
}
};
cntr_aCounter.start();
}
如果大家有更好的方案,欢迎拍砖!!
分享到:
相关推荐
SurfaceView + MediaPlayer 实现的视频播放器,支持横竖屏切换,手势快进快退、调节音量,亮度等。------代码简单,基础应用
jsp下的web播放器[采用mediaplayer实现] jsp下的web播放器[采用mediaplayer实现]
TextureView+Mediaplayer实现本地视频播放
Android实现简单音乐播放器(MediaPlayer),供大家参考,具体内容如下 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能有: 播放、暂停功能; 进度条显示...
15754358SimpleMediaPlayer使用Windows内置组件Windows MediaPlayer实现的播放器
基于JMF实现的MediaPlayer,如何使用JMF实现声音文件播放
Android 视频播放demo MediaPlayer+Surface实现 播放网络视频: MyMediaPlayer.getInstance().play("http://download.cntv.cn/docuchina/PSA/2017/08/28/3b69f457848e0b497b12e356376515df_mpeg28000000PCM.mp4"); ...
Step1:创建MediaPlayer对象,并让它加载指定的视频文件; Step2:在界面布局文件中定义SurfaceView控件,或在程序中创建SurfaceView控件,并为SurfaceView的SurfaceHolder添加Callback监听器; Step3:调用...
surfaceview+mediaplayer 实现视频播放和动态设置view的宽高和全屏窗口切换。播放的是没m3u8的视频,大家有什么问题也可以回复。
SurfaceView + MediaPlayer 实现的视频播放器.zip
本人刚学习C#自己编写的播放器,功能很全,绝对有价值!
用Mediaplayer做音乐播放,可以调节声音大小,播放进度、暂停等功能 只有窗体源码,需要自己建项目
android 系统播放器+SurfaceView实现播放,XML文件定义SurfaceView实现播放,并监听播放器准备,错误,完成,以及进度等函数
使用MediaPlayer做的视频播放 实现暂停、重播、停止等一些功能,适合于新手上手学习使用并拓展。。。
采用QT5.9实现非依靠ffmpeg、opencv、sdl的多功能播放器,其实还是跟ffmpeg挂钩的,各种事件、有截图保存功能,全屏等,稍加修改,可实现更多,绝对值得你拥有,初学者有福。。。
用vc++实现的M ediaPlayer的主要功能,播放图片、音频、视频,播放列表....
工程中用VS2008,WM6开发,实现了录像,串口通信,还有调用Windows MediaPlayer 定时播放录像的功能
Android MediaPlayer 自定义循环次数
Java-MediaPlayer源码Java-MediaPlayer源码