`
wen742538485
  • 浏览: 228815 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android MediaPlayer基本使用方式

阅读更多
使用MediaPlayer播放音频或者视频的最简单例子:
JAVA代码部分:
[java] view plaincopy
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(); 
 
    } 
 

 
 
 
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ddna/archive/2010/01/11/5176233.aspx 

布局文件main.xml:
[xhtml] view plaincopy
<?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的三种使用方法

    android MediaPlayer的三种使用方法

    Android MediaPlayer

    基于android的音乐播放器 实现了音乐播放 快进 快退 等基本功能 大体上功能和 android 自带播放器类似 欢迎大家拍砖

    Android开发之MediaPlayer基本使用方法详解

    本文实例讲述了Android MediaPlayer基本使用方法。分享给大家供大家参考,具体如下: 使用MediaPlayer播放音频或者视频的最简单例子: Java代码部分: public class MediaPlayerStudy extends Activity { private ...

    使用MediaPlayer播放音频时的基本函数调用

    需要使用软件 yEd Graph Editor 打开,内容基于个人当时的知识理解分析。

    android开发MediaPlayer+Service MP3音乐播放器

    Mediaplayer+Service实现的MP3播放器。 1、具有左右滑动屏效果 2、支持后台播放 3、进度条刷新 4、播放模式(顺序、循环、随机、单曲)选择及其他一些基本功能。

    android开发揭秘PDF

    1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 Android开发准备工作 2.2 ...

    android音乐播放简单实现的简单示例(MediaPlayer)

    利用MediaPlayer完成一个最简单的音乐播放。这个基本的控制掌握后,可直接利用为背景乐的控制。 为了能够实现播放,在界面方面,我们需要三个控制按钮,分别是:Play(播放)、Pause(暂停)、Stop(停止) 请看activity...

    疯狂Android讲义源码

     1.3.2 使用Android模拟器  (Emulator) 14  1.3.3 使用DDMS进行调试 15  1.3.4 Android Debug Bridge(ADB)  的用法 16  1.3.5 使用DX编译Android应用 18  1.3.6 使用Android Asset Packaging  Tool...

    Android提高之MediaPlayer播放网络音频的实现方法

    前面有文章曾经地介绍过MediaPlayer的基本用法,这里就更加深入地讲解MediaPlayer的在线播放功能。本文主要实现MediaPlayer在线播放音频的功能,由于在线视频播放比在线音频播放复杂,因此先介绍在线音频播放的实现...

    视频播放器 IJKplayer、ExoPlayer、MediaPlayer

    视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS支持,支持弹幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频本身自带...

    《Android应用开发揭秘》附带光盘代码.

    《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言  第一部分 准备篇  第1章 Android开发简介  1.1 Android基本概念  1.1.1 Android简介  1.1.2 Android的系统构架  1.1.3 ...

    Android应用开发揭秘pdf高清版

    它还以迭代的方式重现了各种常用的Android应用和经典Android游戏的开发全过程,既可以以它们为范例进行实战演练,又可以将它们直接应用到实际开发中去。 目录 -------------------------------------------------...

    Android开发与应用——张荣,原书配套课件

    6.1 数据存储与共享方式概述 6.2 首选项信息 6.2.1 私有数据存储 6.2.2 公有数据存储与共享 6.3 数据文件 6.3.1 内存数据文件 6.3.2 SD卡数据文件 6.4 SQLite数据库 6.4.1 SQLite基本操作 6.4.2 ...

    《Android应用开发揭秘》源码

     1.1 Android基本概念  1.1.1 Android简介  1.1.2 Android的系统构架  1.1.3 Android应用程序框架  1.2 OMS介绍  1.2.1 OPhone介绍  1.2.2 Widget介绍  1.3 小结  第2章 Android开发环境搭建  2.1 Android...

    AudioPlayerView是一个Android视图,可从URL加载音频并具有基本的播放工具。-Android开发

    AudioPlayerView AudioPlayerView是一个Android视图,可从URL加载音频并具有基本的播放工具。 它利用了Android MediaPlayer库。 不幸的是,此gif无法播放音频:)检查示例AudioPlayerView AudioPlayerView是一个...

    Android2.0源代码

    在其他的平台上面可能VideoPlayer开发是一个比较有挑战性的工作,但是在Android上面VideoPlayer的开发,基本上可以做到傻瓜式啦。本文简单对VideoPlayer的开发进行简单的介绍。 实例 1.布局文件 xmlns:android=...

    Android实例代码

    2.3、基本界面组件:TextView、EditText; Button、ImageButton; 9Patch; RadioButton、CheckBox; ToggleButton;AnalogClock、DigitalClock; ImageView; 2.4、高级界面组件:AutoCompleteTextView; Spinner; ...

Global site tag (gtag.js) - Google Analytics