`
deyum
  • 浏览: 35863 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何让MediaPlayer实现AB段复读功能

阅读更多
近日在做一个学习法语的小应用,被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();
	}


如果大家有更好的方案,欢迎拍砖!!
分享到:
评论

相关推荐

    android音乐播放器(歌词同步、复读、快进、开机画面)

    在Android应用中实现复读,主要涉及以下技术:1) 使用MediaPlayer的seekTo()方法定位到需要重复播放的部分;2) 设计一个循环播放机制,比如设置一个计数器,当达到设定次数后停止复读;3) 用户界面中应提供明确的...

    TextureView+Mediaplayer实现本地视频播放

    本篇将深入探讨如何使用`TextureView`结合`MediaPlayer`来实现在Android应用中播放本地视频。`TextureView`提供了一个高效且灵活的方式显示图像数据,而`MediaPlayer`是Android系统提供的多媒体播放器,支持多种格式...

    android MediaPlayer+SurfaceView实现播放

    在Android开发中,多媒体播放是常见的功能之一,`MediaPlayer` 和 `SurfaceView` 的结合使用是实现视频播放的标准方式。本篇文章将详细讲解如何利用这两个组件来构建一个视频播放器。 首先,`MediaPlayer` 是...

    jsp下的web播放器[采用mediaplayer实现]

    在本文中,我们将深入探讨如何在JSP(JavaServer Pages)环境下实现一个基于MediaPlayer的Web播放器。MediaPlayer是Java提供的一种多媒体处理框架,它允许开发者处理音频、视频内容,非常适合构建网页上的媒体播放...

    C#实现MediaPlayer播放器

    综上所述,创建一个C#实现的MediaPlayer播放器涵盖了从基础的C#语法到复杂的多媒体处理和用户交互设计等多个方面。通过这样的项目实践,开发者不仅可以提升编程技能,还能对多媒体应用有更深入的理解。在提供的"压缩...

    Mediaplayer做音乐播放

    在本文中,我们将深入探讨如何使用`MediaPlayer`类在Windows Forms应用程序中实现音乐播放功能,以及如何通过窗体源码实现声音大小调节、播放进度控制和暂停等常见操作。`MediaPlayer`是.NET Framework中用于多媒体...

    surfaceview+mediaplayer实现视频播放和动态设置全屏窗口切换。

    在Android应用开发中,SurfaceView和MediaPlayer是两个关键组件,常用于实现视频播放功能。SurfaceView是一个特殊的视图,它可以创建一个独立的图形表面,使得视频渲染和其他UI操作可以并行进行,避免了UI线程阻塞,...

    15754358SimpleMediaPlayer使用Windows内置组件Windows MediaPlayer实现的播放器

    Windows MediaPlayer是一款功能丰富的媒体播放器,支持多种格式的媒体文件,包括但不限于MP3、WAV、WMV、AVI、MP4等。 在Windows MediaPlayer组件中,有几个核心知识点: 1. **组件集成**:SimpleMediaPlayer通过...

    Android实现简单音乐播放器(MediaPlayer)

    Android实现简单音乐播放器(MediaPlayer),供大家参考,具体内容如下 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能有: 播放、暂停功能; 进度条显示...

    多媒体程序设计——MediaPlayer实现代码

    【多媒体程序设计——MediaPlayer实现代码】是关于使用VC++编程语言构建一个多媒体播放器的实践项目,主要目标是实现播放图像、音频和视频文件的功能,同时支持播放列表操作。在这个项目中,我们可以深入理解多媒体...

    SurfaceView + MediaPlayer 实现的视频播放器,支持横竖屏切换,手势快进快退.zip

    为了实现这个功能,我们需要重写`GestureDetector`的监听器方法,如`onDown()`, `onScroll()`, `onSingleTapUp()`等,根据手势动作更新`MediaPlayer`的状态。 除了以上核心组件和功能,该项目可能还涉及其他方面,...

    MediaPlayer

    描述部分提到,通过使用MediaPlayer,开发者可以实现这些基本功能,并且适合新手入门学习。这表明,MediaPlayer API设计得相对直观,便于理解,开发者可以通过它快速构建一个简单的媒体播放器应用。同时,这也暗示了...

    Android MediaPlayer 自定义循环次数

    MediaPlayer是一个功能强大的类,可以用来播放音频和视频流或文件。它支持多种格式的媒体文件,包括但不限于MP3、AAC、AMR、WAV、MPEG4、3GP等。通过其灵活的API,开发者可以实现音频的播放、暂停、停止以及音量控制...

    SurfaceView + MediaPlayer 实现的视频播放器

    在Android开发中,实现视频播放功能是常见的需求。在这个场景中,我们主要使用`SurfaceView`和`MediaPlayer`这两个核心组件来创建一个简单的视频播放器。`SurfaceView`是Android提供的一种特殊视图,用于高效地显示...

    SurfaceView + MediaPlayer 实现的视频播放器.zip

    在Android开发中,创建一个视频播放器是常见的需求,而`SurfaceView`和`MediaPlayer`则是实现这一功能的核心组件。本项目"SurfaceView + MediaPlayer 实现的视频播放器"就是一个典型的示例,它展示了如何利用这两种...

    mediaplayer+surfaceview+seekbar简单实现点播播放器

    这个项目使用了`MediaPlayer`、`SurfaceView`和`SeekBar`这三个关键组件来实现这一功能。下面将详细讲解这三个组件以及如何将它们整合起来。 `MediaPlayer`是Android SDK中的核心音频/视频播放类,它提供了播放本地...

    超值QT5之mediaplayer实现RTSP以及本地解码播放

    本项目“超值QT5之mediaplayer实现RTSP以及本地解码播放”旨在利用QMediaPlayer类来实现对RTSP(Real-Time Streaming Protocol)流媒体协议的支持,同时也处理本地媒体文件的解码播放。 RTSP是一种应用层协议,用于...

    Android 视频播放demo MediaPlayer+Surface实现

    Android 视频播放demo MediaPlayer+Surface实现 播放网络视频: MyMediaPlayer.getInstance().play("http://download.cntv.cn/docuchina/PSA/2017/08/28/3b69f457848e0b497b12e356376515df_mpeg28000000PCM.mp4"); ...

    Delphi使用MediaPlayer控件

    在本文中,我们将深入探讨如何在Delphi编程环境中使用MediaPlayer控件来实现音频播放功能。Delphi是一款强大的可视化开发工具,常用于创建Windows应用程序。MediaPlayer控件是Delphi提供的一种集成多媒体播放功能的...

Global site tag (gtag.js) - Google Analytics