`
2014马年
  • 浏览: 121223 次
  • 性别: Icon_minigender_1
  • 来自: 晋中
社区版块
存档分类
最新评论

android的MediaPlayer的简介

阅读更多
 

简介

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
分享到:
评论

相关推荐

    Android MediaPlayer 自定义循环次数

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

    Android的MediaPlayer架构介绍

    ### Android的MediaPlayer架构详细介绍 #### 一、MediaPlayer概述 Android平台上的`MediaPlayer`是一个非常重要的组件,用于处理音频和视频的播放任务。无论是系统自带的音乐播放器还是视频播放器应用,都依赖于`...

    Android MediaPlayer播放mp3的实例.doc

    "Android MediaPlayer播放mp3的实例" Android 中的 MediaPlayer 是一个功能强大且复杂的媒体播放器,可以播放音频和视频文件。在 Android 的界面上,Music 和 Video 两个应用程序都是调用 MediaPlayer 实现的。...

    Android 使用MediaPlayer播放视频

    `MediaPlayer`是Android SDK提供的一种核心组件,专门用于播放音频和视频文件。在这个场景中,我们将详细探讨如何使用`MediaPlayer`来播放视频,同时结合`SurfaceView`来显示视频画面。本文将深入解析相关知识点,并...

    android MediaPlayer播放视频网络URL,asset目录下文件,本地视频文件

    在Android开发中,`MediaPlayer`类是用于播放各种媒体文件的核心组件。它可以处理音频、视频流,支持多种格式,如MP3、AAC、MPEG-4等。在本教程中,我们将深入探讨如何使用`MediaPlayer`播放网络URL、Asset目录下的...

    Android MediaPlayer使用方法简单介绍

    在Android平台上,`MediaPlayer`是系统提供的一个核心组件,用于播放各种媒体文件,如音频和视频。本篇文章将深入探讨`MediaPlayer`的使用方法,帮助开发者理解和掌握如何在Android应用中实现多媒体播放功能。 首先...

    Android应用开发mediaplayer播放音频,带有进度条

    在Android应用开发中,MediaPlayer类是用于播放各种音频和视频资源的核心组件。在这个特定的示例中,我们关注的是如何使用MediaPlayer与进度条(SeekBar)结合,创建一个简单的音频播放器。以下是对这个Android应用...

    android MediaPlayer+SurfaceView实现播放

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

    玩转 Android MediaPlayer之视频预加载(优化)

    在Android开发中,MediaPlayer是系统提供的一个核心组件,主要用于播放音频和视频文件。在处理视频播放时,预加载(Preloading)是一个非常重要的优化策略,它有助于提高用户体验,特别是对于网络视频流而言。预加载...

    Android实例之MediaPlayer播放音乐和视频

    在Android开发中,MediaPlayer是一个非常重要的组件,它用于播放音频和视频文件。在这个"Android实例之MediaPlayer播放音乐和视频"中,我们将深入探讨如何利用MediaPlayer类实现多媒体的播放功能。 首先,...

    Android MediaPlayer研究问题

    在Android开发中,MediaPlayer是一个非常重要的组件,它用于播放各种媒体资源,如音频和视频文件。这个组件在处理多媒体内容时提供了丰富的功能,但同时也伴随着一些常见问题和挑战。这篇博客"Android MediaPlayer...

    Android 中级教程之------Android MediaPlayer播放mp3的实例

    在Android开发中,MediaPlayer是一个非常重要的组件,它用于播放各种媒体资源,如音频和视频文件。本教程将深入探讨如何使用Android的MediaPlayer类来播放MP3格式的音频文件。了解这个知识点对于Android开发者来说至...

    Android MediaPlayer

    **Android MediaPlayer 深度解析** 在Android平台上,多媒体处理是一个重要的功能,而`MediaPlayer`类是Android SDK提供的一种核心组件,专门用于处理音频和视频的播放。它提供了丰富的功能,如播放本地或网络资源...

    Android下MediaPlayer播放MP3示例

    在Android平台上,`MediaPlayer`是系统提供的一个核心组件,用于播放音频和视频文件。这个组件支持多种媒体格式,包括MP3。在这个示例中,我们将深入探讨如何使用`MediaPlayer`来播放MP3文件。 首先,我们需要了解`...

    android-mediaplayer_android源码_

    Android提供了内置的`MediaPlayer`类,用于处理音频、视频的播放任务。本示例源代码着重解析`MediaPlayer`在Android系统中的实现,帮助开发者深入理解其工作原理和使用方法。 `MediaPlayer`类是Android SDK中的核心...

    Android MediaPlayer与Http Proxy结合之基础篇

    在Android开发中,`MediaPlayer`是用于播放多媒体文件的核心组件,它可以处理音频、视频等多种格式的媒体资源。然而,有时我们需要处理特殊的网络环境或者需要实现特定的功能,例如播放反盗链的媒体文件或实现边播放...

    Android MediaPlayer简单音乐播放器

    在Android平台上,开发一个简单的音乐播放器应用是一个常见的任务,主要涉及到的核心组件是`MediaPlayer`。这个组件提供了音频和视频播放的功能,对于构建一个基础的音乐播放器来说,至关重要。以下将详细介绍`...

    Android MediaPlayer Playback---多媒体开发应用程序接口

    Android提供了多种API来处理音频、视频和图像,其中之一就是`MediaPlayer`类。这个强大的工具允许开发者播放本地或网络上的媒体文件,为用户创建各种多媒体应用提供了便利。 `MediaPlayer`是Android SDK中的核心...

    android mediaPlayer demo

    在Android开发中,`MediaPlayer`是一个非常重要的组件,主要用于处理音频和视频的播放。这个"android mediaPlayer demo"是一个基础的示例,展示了如何在Android应用中集成和使用`MediaPlayer`类。下面我们将深入探讨...

    Android 使用MediaPlayer高级

    在Android平台上,`MediaPlayer`是系统提供的一个核心组件,用于播放各种媒体文件,如音频和视频。本篇文章将深入探讨`MediaPlayer`的高级用法,包括但不限于事件处理、流媒体播放、音量控制以及错误处理等方面。...

Global site tag (gtag.js) - Google Analytics