使用MediaPlayer播放音频或者视频的最简单例子:
public class MediaPlayerStudy extends Activity {
private Button bplay,bpause,bstop;
private MediaPlayer mp = new MediaPlayer();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bplay = (Button)findViewById(R.id.play);
bpause = (Button)findViewById(R.id.pause);
bstop = (Button)findViewById(R.id.stop);
bplay.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
try {
mp.setDataSource("/sdcard/test.mp3");
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mp.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
}
});
bpause.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.pause();
}
}
});
bstop.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.stop();
}
}
});
}
@Override
protected void onDestroy() {
if(mp != null)
mp.release();
super.onDestroy();
}
}
布局文件main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<Button android:text="play" android:id="@+id/play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="pause" android:id="@+id/pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="stop" android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</LinearLayout>
程序说明:
这个例子只是描述了MediaPlayer的基本使用步骤和方式,MediaPlayer还有多种使用方式和方法,并不只局限于例子所介绍的一种。具体来看:
1)如何获得MediaPlayer实例:
可以使用直接new的方式:
MediaPlayer mp = new MediaPlayer();
也可以使用create的方式,如:
MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource了
2) 如何设置要播放的文件:
MediaPlayer要播放的文件主要包括3个来源:
a. 用户在应用中事先自带的resource资源
例如:MediaPlayer.create(this, R.raw.test);
b. 存储在SD卡或其他文件路径下的媒体文件
例如:mp.setDataSource("/sdcard/test.mp3");
c. 网络上的媒体文件
例如:mp.setDataSource("http://www.citynorth.cn/music/confucius.mp3");
MediaPlayer的setDataSource一共四个方法:
setDataSource (String path)
setDataSource (FileDescriptor fd)
setDataSource (Context context, Uri uri)
setDataSource (FileDescriptor fd, long offset, long length)
3)对播放器的主要控制方法:
Android通过控制播放器的状态的方式来控制媒体文件的播放,其中:
prepare()和prepareAsync() 提供了同步和异步两种方式设置播放器进入prepare状态,需要注意的是,如果MediaPlayer实例是由create方法创建的,那么第一次启动播放前不需要再调用prepare()了,因为create方法里已经调用过了。
start()是真正启动文件播放的方法,
pause()和stop()比较简单,起到暂停和停止播放的作用,
seekTo()是定位方法,可以让播放器从指定的位置开始播放,需要注意的是该方法是个异步方法,也就是说该方法返回时并不意味着定位完成,尤其是播放的网络文件,真正定位完成时会触发OnSeekComplete.onSeekComplete(),如果需要是可以调用setOnSeekCompleteListener(OnSeekCompleteListener)设置监听器来处理的。
release()可以释放播放器占用的资源,一旦确定不再使用播放器时应当尽早调用它释放资源。
reset()可以使播放器从Error状态中恢复过来,重新会到Idle状态。
4)设置播放器的监听器:
MediaPlayer提供了一些设置不同监听器的方法来更好地对播放器的工作状态进行监听,以期及时处理各种情况,
如: setOnCompletionListener(MediaPlayer.OnCompletionListener listener)、
setOnErrorListener(MediaPlayer.OnErrorListener listener)等,设置播放器时需要考虑到播放器可能出现的情况设置好监听和处理逻辑,以保持播放器的健壮性。
分享到:
相关推荐
总的来说,`Android MediaPlayer`是一个强大且灵活的工具,通过理解其基本用法和各种回调,开发者能够实现丰富的媒体播放功能。在实际开发中,根据具体需求,还可以结合`SurfaceView`或`TextureView`进行更复杂的...
MediaPlayer 在底层是基于 OpenCore(PacketVideo) 的库实现的,为了构建一个 MediaPlayer 程序,上层还包含了进程间通讯等内容,这种进程间通讯的基础是 Android 基本库中的 Binder 机制。 在本示例中,我们将使用 ...
在Android开发中,多媒体播放是常见的功能之一,`MediaPlayer` 和 `SurfaceView` 的结合使用是实现视频播放的标准方式。本篇文章将详细讲解如何利用这两个组件来构建一个视频播放器。 首先,`MediaPlayer` 是...
在Android应用开发中,MediaPlayer类是用于播放各种音频和视频资源的核心组件。在这个特定的示例中,我们关注的是如何...对于初学者来说,这个示例是一个很好的起点,有助于理解和掌握Android多媒体播放的基本操作。
在Android应用中,使用MediaPlayer的基本步骤包括初始化、设置数据源、准备和开始播放。例如,初始化一个MediaPlayer对象,你可以这样写: ```java MediaPlayer mediaPlayer = new MediaPlayer(); ``` 接着,你...
这篇博客"Android MediaPlayer研究问题"可能深入探讨了在使用MediaPlayer过程中遇到的问题及解决方案。 首先,我们来了解MediaPlayer的基本用法。在Android中,MediaPlayer类提供了加载、控制和播放媒体文件的能力...
首先,我们来看一下MediaPlayer的基本使用步骤: 1. 初始化MediaPlayer对象:通常,我们会在Activity或Service中创建MediaPlayer对象。初始化时,我们需要调用`MediaPlayer.create()`方法,并传入上下文(Context)...
android MediaPlayer的三种使用方法
**一、MediaPlayer的基本使用** `MediaPlayer`对象的创建通常始于`setDataSource()`方法,它可以接收文件路径、URI或内容URI作为参数,加载媒体文件。例如: ```java MediaPlayer mediaPlayer = new MediaPlayer()...
这个示例展示了如何在Android应用中使用`MediaPlayer`组件播放MP3文件,包括设置数据源、准备播放、处理播放状态变化等关键步骤。通过阅读`MediaPlayerDemo`项目的源代码,你可以更深入地理解这些概念,并将其应用于...
`MediaPlayer`是Android SDK中的核心组件,它实现了基本的媒体播放功能,支持多种格式的音频和视频文件。通过`MediaPlayer`,开发者可以控制媒体的播放、暂停、停止、 seek(定位播放位置)等操作,甚至可以进行音量...
同时,它实现了Java层的`android.media.MediaPlayer`类,使得开发者能够通过Java语言轻松地使用多媒体播放功能。 3. **libmediaplayerservice.so**:作为多媒体服务的核心,它继承自`libmedia.so`中的类,并实现...
在这个迷你案例中,我们将深入探讨如何使用`MediaPlayer`来实现基本的播放、暂停和停止功能。 首先,确保在AndroidManifest.xml文件中添加了必要的权限,特别是读取外部存储的权限,因为许多音频文件可能存储在外部...
在Android平台上,开发一个简单的音乐播放器通常会涉及到Android MediaPlayer类的使用。MediaPlayer是Android SDK提供的一个核心组件,用于播放音频和视频文件。本项目"Android MediaPlayer简单音乐播放器"显然是一...
这个示例可能包含了创建`MediaPlayer`对象、设置数据源、准备、播放、控制以及监听播放状态的基本步骤。具体代码可能涉及如何根据用户操作启动、暂停、停止播放,以及如何处理播放过程中的异常情况。 9. 性能优化...
以上就是使用Android `MediaPlayer` 实现网络流播放、本地播放、`SeekBar` 控制及全屏显示的基本步骤。在实际项目中,还需要考虑异常处理、资源释放等细节问题,确保应用的稳定性和用户体验。在MediaDemo这个示例...
本文实例讲述了Android MediaPlayer基本使用方法。分享给大家供大家参考,具体如下: 使用MediaPlayer播放音频或者视频的最简单例子: Java代码部分: public class MediaPlayerStudy extends Activity { private ...
在Android开发中,掌握MediaPlayer的使用是十分重要的,因为它是实现多媒体应用功能的基础。以下是对MediaPlayer的详细讲解:** **1. 初始化MediaPlayer** 初始化MediaPlayer对象是使用它的第一步。通常,我们需要...
本源码提供了一款简单的Android MediaPlayer播放器实现,适合初学者理解多媒体播放的基本原理和API使用。下面将详细介绍这款源码中的关键知识点。 首先,`MediaPlayer`是Android SDK提供的一个类,用于播放音频和...
这个`Android源码——(MediaPlayer音乐).rar`压缩包很可能是为了详细讲解如何使用`MediaPlayer`类来实现音乐播放功能。在这个压缩包中,我们可能会看到一系列的示例代码、注释和教程,帮助开发者深入理解`...