近日在做一个学习法语的小应用,被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应用中实现复读,主要涉及以下技术:1) 使用MediaPlayer的seekTo()方法定位到需要重复播放的部分;2) 设计一个循环播放机制,比如设置一个计数器,当达到设定次数后停止复读;3) 用户界面中应提供明确的...
本篇将深入探讨如何使用`TextureView`结合`MediaPlayer`来实现在Android应用中播放本地视频。`TextureView`提供了一个高效且灵活的方式显示图像数据,而`MediaPlayer`是Android系统提供的多媒体播放器,支持多种格式...
在Android开发中,多媒体播放是常见的功能之一,`MediaPlayer` 和 `SurfaceView` 的结合使用是实现视频播放的标准方式。本篇文章将详细讲解如何利用这两个组件来构建一个视频播放器。 首先,`MediaPlayer` 是...
在本文中,我们将深入探讨如何在JSP(JavaServer Pages)环境下实现一个基于MediaPlayer的Web播放器。MediaPlayer是Java提供的一种多媒体处理框架,它允许开发者处理音频、视频内容,非常适合构建网页上的媒体播放...
综上所述,创建一个C#实现的MediaPlayer播放器涵盖了从基础的C#语法到复杂的多媒体处理和用户交互设计等多个方面。通过这样的项目实践,开发者不仅可以提升编程技能,还能对多媒体应用有更深入的理解。在提供的"压缩...
在本文中,我们将深入探讨如何使用`MediaPlayer`类在Windows Forms应用程序中实现音乐播放功能,以及如何通过窗体源码实现声音大小调节、播放进度控制和暂停等常见操作。`MediaPlayer`是.NET Framework中用于多媒体...
在Android应用开发中,SurfaceView和MediaPlayer是两个关键组件,常用于实现视频播放功能。SurfaceView是一个特殊的视图,它可以创建一个独立的图形表面,使得视频渲染和其他UI操作可以并行进行,避免了UI线程阻塞,...
Windows MediaPlayer是一款功能丰富的媒体播放器,支持多种格式的媒体文件,包括但不限于MP3、WAV、WMV、AVI、MP4等。 在Windows MediaPlayer组件中,有几个核心知识点: 1. **组件集成**:SimpleMediaPlayer通过...
Android实现简单音乐播放器(MediaPlayer),供大家参考,具体内容如下 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能有: 播放、暂停功能; 进度条显示...
【多媒体程序设计——MediaPlayer实现代码】是关于使用VC++编程语言构建一个多媒体播放器的实践项目,主要目标是实现播放图像、音频和视频文件的功能,同时支持播放列表操作。在这个项目中,我们可以深入理解多媒体...
为了实现这个功能,我们需要重写`GestureDetector`的监听器方法,如`onDown()`, `onScroll()`, `onSingleTapUp()`等,根据手势动作更新`MediaPlayer`的状态。 除了以上核心组件和功能,该项目可能还涉及其他方面,...
描述部分提到,通过使用MediaPlayer,开发者可以实现这些基本功能,并且适合新手入门学习。这表明,MediaPlayer API设计得相对直观,便于理解,开发者可以通过它快速构建一个简单的媒体播放器应用。同时,这也暗示了...
MediaPlayer是一个功能强大的类,可以用来播放音频和视频流或文件。它支持多种格式的媒体文件,包括但不限于MP3、AAC、AMR、WAV、MPEG4、3GP等。通过其灵活的API,开发者可以实现音频的播放、暂停、停止以及音量控制...
在Android开发中,实现视频播放功能是常见的需求。在这个场景中,我们主要使用`SurfaceView`和`MediaPlayer`这两个核心组件来创建一个简单的视频播放器。`SurfaceView`是Android提供的一种特殊视图,用于高效地显示...
在Android开发中,创建一个视频播放器是常见的需求,而`SurfaceView`和`MediaPlayer`则是实现这一功能的核心组件。本项目"SurfaceView + MediaPlayer 实现的视频播放器"就是一个典型的示例,它展示了如何利用这两种...
这个项目使用了`MediaPlayer`、`SurfaceView`和`SeekBar`这三个关键组件来实现这一功能。下面将详细讲解这三个组件以及如何将它们整合起来。 `MediaPlayer`是Android SDK中的核心音频/视频播放类,它提供了播放本地...
本项目“超值QT5之mediaplayer实现RTSP以及本地解码播放”旨在利用QMediaPlayer类来实现对RTSP(Real-Time Streaming Protocol)流媒体协议的支持,同时也处理本地媒体文件的解码播放。 RTSP是一种应用层协议,用于...
Android 视频播放demo MediaPlayer+Surface实现 播放网络视频: MyMediaPlayer.getInstance().play("http://download.cntv.cn/docuchina/PSA/2017/08/28/3b69f457848e0b497b12e356376515df_mpeg28000000PCM.mp4"); ...
在本文中,我们将深入探讨如何在Delphi编程环境中使用MediaPlayer控件来实现音频播放功能。Delphi是一款强大的可视化开发工具,常用于创建Windows应用程序。MediaPlayer控件是Delphi提供的一种集成多媒体播放功能的...