简介
http://developer.android.com/reference/android/media/MediaPlayer.html
状态图
单个剪头的代表同步方法调用,两个箭头的代表异步调用。
对于这个状态图,可以看到MediaPlayer有一下几个状态:
1.当MediaPlayer对象创建或者调用 reset()
后,他就是“Idle 状态”;调用release()
后,变为 "End 状态".
这两个状态之间就是MediaPlayer的生命周期的循环。
- 有一个容易忽略,但要注意的,新建一个对象,或者调用reset后,在新创建对象后调用一些方法,会执行出错,但是不会调用OnError,状态也不会变。如果在reset之后,就会调用onError,并且状态编程 “Error状态”
- 推荐在MediaoPlayer不再使用的时候,立即调用release() 会方便资源立即释放。资源可能包括单个资源,比如硬件加速组件。MediaPlayer在“End 状态“的话就不能回到其它状态。
- MediaPlayer 创建后在 “idle状态”,如果使用重载的 create方法,就不是“Idle状态”,事实上,对象用create创建成功后就在“prepared状态”。
2.事实上,很多操作会由于一系列的原因导致失败,如不支持的音频文件,poorly interleaved,resolution too high,流超时,如果从“error 状态“重新利用MediaPlayer,调用reset可以转换idle状态。注册error监听是个好的习惯。
3.MediaPlayer必须先进入Prepared状态才能播放。
4.开始播放,start必须调用,调用start后返回成功,MediaoPlayer变为start模式。isPlaying()返回当前MediaPlayer是否是播放
- 当是start状态,用户注册了setOnBufferingUpdateListener(OnBufferingUpdateListener). 监听会调用OnBufferingUpdateListener.onBufferingUpdate()回调。
- started状态调用start没有效果。
5. 播放可以暂停和停止,并且当前的播放位置可以调整,通过pause()来暂停,MediaPlayer会进入pause状态.在start到pause的过程是异步的,所以调用isPlaying()的时候需要稍稍等待状态转换。在流内容的时候可能到1s。
- 调用start重新播放一个暂停的mediaPlayer对象。会从暂停的地方重新播放。
- pause状态调用pause()没有任何影响。
6.调用stop 可以停止播放,MediaPlayer的状态会从 Started, Paused, Prepared or PlaybackCompleted state 到 stop状态
- 在stopped state,播放前需要调用 prepare() or prepareAsync() 再次回到Prepared 状态
- 在stopped状态调用stop没有影响.
7.可以用seekTo 来调整播放位置
- 可以在 Prepared, Paused and PlaybackCompleted 状态中调整
- 尽管是同步操作,但是可能要等一小会才能完成.特别是流的时候.如果监听了 setOnSeekCompleteListener(OnSeekCompleteListener),那么在完成的时候会调用OnSeekComplete.onSeekComplete().
- 还有,通过 getCurrentPosition()获取当前播放位置.
8.播放到最后,播放就完成了
- 如果是循环模式(setLooping(boolean)),MediaPlauer仍然是 Started state.
- 如果不是循环模式,如果用户注册了监听,则会调用 OnCompletion.onCompletion(),然后状态变为 PlaybackCompleted state.
- 在 PlaybackCompleted state.调用start可以重新从起点开始播放.
9.权限
- 需要添加一个唤醒( WAKE_LOCK)权限,联网的话需要添加Internet权限。
- 大小: 23 KB
分享到:
相关推荐
MediaPlayer简介 MediaPlayer是一个功能强大的类,可以用来播放音频和视频流或文件。它支持多种格式的媒体文件,包括但不限于MP3、AAC、AMR、WAV、MPEG4、3GP等。通过其灵活的API,开发者可以实现音频的播放、暂停...
### Android的MediaPlayer架构详细介绍 #### 一、MediaPlayer概述 Android平台上的`MediaPlayer`是一个非常重要的组件,用于处理音频和视频的播放任务。无论是系统自带的音乐播放器还是视频播放器应用,都依赖于`...
"Android MediaPlayer播放mp3的实例" Android 中的 MediaPlayer 是一个功能强大且复杂的媒体播放器,可以播放音频和视频文件。在 Android 的界面上,Music 和 Video 两个应用程序都是调用 MediaPlayer 实现的。...
`MediaPlayer`是Android SDK提供的一种核心组件,专门用于播放音频和视频文件。在这个场景中,我们将详细探讨如何使用`MediaPlayer`来播放视频,同时结合`SurfaceView`来显示视频画面。本文将深入解析相关知识点,并...
在Android开发中,`MediaPlayer`类是用于播放各种媒体文件的核心组件。它可以处理音频、视频流,支持多种格式,如MP3、AAC、MPEG-4等。在本教程中,我们将深入探讨如何使用`MediaPlayer`播放网络URL、Asset目录下的...
在Android平台上,`MediaPlayer`是系统提供的一个核心组件,用于播放各种媒体文件,如音频和视频。本篇文章将深入探讨`MediaPlayer`的使用方法,帮助开发者理解和掌握如何在Android应用中实现多媒体播放功能。 首先...
在Android应用开发中,MediaPlayer类是用于播放各种音频和视频资源的核心组件。在这个特定的示例中,我们关注的是如何使用MediaPlayer与进度条(SeekBar)结合,创建一个简单的音频播放器。以下是对这个Android应用...
在Android开发中,多媒体播放是常见的功能之一,`MediaPlayer` 和 `SurfaceView` 的结合使用是实现视频播放的标准方式。本篇文章将详细讲解如何利用这两个组件来构建一个视频播放器。 首先,`MediaPlayer` 是...
在Android开发中,MediaPlayer是系统提供的一个核心组件,主要用于播放音频和视频文件。在处理视频播放时,预加载(Preloading)是一个非常重要的优化策略,它有助于提高用户体验,特别是对于网络视频流而言。预加载...
在Android开发中,MediaPlayer是一个非常重要的组件,它用于播放音频和视频文件。在这个"Android实例之MediaPlayer播放音乐和视频"中,我们将深入探讨如何利用MediaPlayer类实现多媒体的播放功能。 首先,...
在Android开发中,MediaPlayer是一个非常重要的组件,它用于播放各种媒体资源,如音频和视频文件。这个组件在处理多媒体内容时提供了丰富的功能,但同时也伴随着一些常见问题和挑战。这篇博客"Android MediaPlayer...
在Android开发中,MediaPlayer是一个非常重要的组件,它用于播放各种媒体资源,如音频和视频文件。本教程将深入探讨如何使用Android的MediaPlayer类来播放MP3格式的音频文件。了解这个知识点对于Android开发者来说至...
**Android MediaPlayer 深度解析** 在Android平台上,多媒体处理是一个重要的功能,而`MediaPlayer`类是Android SDK提供的一种核心组件,专门用于处理音频和视频的播放。它提供了丰富的功能,如播放本地或网络资源...
在Android平台上,`MediaPlayer`是系统提供的一个核心组件,用于播放音频和视频文件。这个组件支持多种媒体格式,包括MP3。在这个示例中,我们将深入探讨如何使用`MediaPlayer`来播放MP3文件。 首先,我们需要了解`...
Android提供了内置的`MediaPlayer`类,用于处理音频、视频的播放任务。本示例源代码着重解析`MediaPlayer`在Android系统中的实现,帮助开发者深入理解其工作原理和使用方法。 `MediaPlayer`类是Android SDK中的核心...
在Android开发中,`MediaPlayer`是用于播放多媒体文件的核心组件,它可以处理音频、视频等多种格式的媒体资源。然而,有时我们需要处理特殊的网络环境或者需要实现特定的功能,例如播放反盗链的媒体文件或实现边播放...
在Android平台上,开发一个简单的音乐播放器应用是一个常见的任务,主要涉及到的核心组件是`MediaPlayer`。这个组件提供了音频和视频播放的功能,对于构建一个基础的音乐播放器来说,至关重要。以下将详细介绍`...
Android提供了多种API来处理音频、视频和图像,其中之一就是`MediaPlayer`类。这个强大的工具允许开发者播放本地或网络上的媒体文件,为用户创建各种多媒体应用提供了便利。 `MediaPlayer`是Android SDK中的核心...
在Android开发中,`MediaPlayer`是一个非常重要的组件,主要用于处理音频和视频的播放。这个"android mediaPlayer demo"是一个基础的示例,展示了如何在Android应用中集成和使用`MediaPlayer`类。下面我们将深入探讨...
在Android平台上,`MediaPlayer`是系统提供的一个核心组件,用于播放各种媒体文件,如音频和视频。本篇文章将深入探讨`MediaPlayer`的高级用法,包括但不限于事件处理、流媒体播放、音量控制以及错误处理等方面。...