Android 如何调用MediaPlayer播放视频[状态机]【图】
来源:互联网 发布:linux启动kde 编辑:程序博客网 时间:2024/06/06 18:34
Android 如何调用MediaPlayer播放视频
使用MediaPlayer播放音视频的最简单实例:
public class MediaPlayerDemo extends Activity { private Button mBtnPlay, mBtnPause, mBtnStop; private MediaPlayer mPlayer = new MediaPlayer(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mBtnPlay= (Button)findViewById(R.id.play); mBtnPause= (Button)findViewById(R.id.pause); mBtnStop= (Button)findViewById(R.id.stop); mBtnPlay.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { try { mPlayer.setDataSource("/mnt/sdcard/love.mp3"); mPlayer.prepare(); mPlayer.start(); } catch (IOException e) { e.printStackTrace(); } mPlayer.setOnCompletionListener(new OnCompletionListener(){ @Override public void onCompletion(MediaPlayer mp) { mPlayer.release(); } }); } }); mBtnPause.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { if(mPlayer != null){ mPlayer .pause(); } } }); mBtnStop.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { if(mPlayer != null){ mPlayer.stop(); } } }); } @Override protected void onDestroy() { if(mPlayer != null) mPlayer.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有多重构造函数,满足各种视频的播放
- URI方式,URI可以使本地地址或网络地址
- 类似URL方式,多一个SurfaceHolder
- 资源ID方式. 例如:MediaPlayer player = MediaPlayer.create(this, R.raw.test);
- 空构造函数
第二:设置数据源,部分构造函数已经设置数据这一步可以跳过
- setDataSource (String path);
- setDataSource (FileDescriptor fd);
- setDataSource (Context context, Uri uri);
- setDataSource (FileDescriptor fd, long offset, long length);
第三:对播放器的主要控制方法:
- Android通过控制播放器的状态的方式来控制媒体文件的播放,其中:
- prepare() 播放器进入prepare状态;
- start() 播放器进入play状态
- pause() 播放器进入pause状态
- stop() 播放器进入stop状态
- seekTo() 播放器定位到某个播放位置是定位方法
- release() 播放器释放占用的资源
- reset() 播放器从Error状态恢复
第四:设置播放器的监听器:
MediaPlayer提供了播放完成监听和错误监听,以及时处理特殊逻辑。确保播放器的鲁棒性。
- setOnCompletionListener(MediaPlayer.OnCompletionListener listener)
- setOnErrorListener(MediaPlayer.OnErrorListener listener)
- Android 如何调用MediaPlayer播放视频[状态机]【图】
- Android 如何调用MediaPlayer播放视频[状态机]【图】
- Android 视频播放 MediaPlayer
- Android mediaPlayer 播放视频
- Android MediaPlayer播放视频
- android mediaplayer 播放 视频 【转】
- android Mediaplayer 播放音视频
- Android视频播放器mediaplayer
- Android MediaPlayer视频播放详情
- Android视频播放之MediaPlayer
- Android使用MediaPlayer播放视频
- android视频播放MediaPlayer+SurfaceView
- MediaPlayer/MediaPlayer 视频播放
- Android MediaPlayer状态机
- Android MediaPlayer状态机
- Android MediaPlayer状态机
- Android MediaPlayer状态机
- Android MediaPlayer状态机
- ISA 2006 单网卡配置代理服务器
- matlab 基本关于文件创建,读取的操作
- 任务的调度
- 颜色对话框的调用
- HTTP协议详解
- Android 如何调用MediaPlayer播放视频[状态机]【图】
- 高性能网站建设法则
- 在XP-SP3下安装CentOS5,当Linux崩溃之后,如何利用Grub进入XP
- 十四、警告: Error setting expression 'order.fullAddress' with value '[Ljava.lang.String;@beccc8
- MySQL性能优化---索引
- synchronized的用法汇总
- unix crontab 用法(转) .
- 编写String类的普通构造函数、拷贝构造函数、析构函数、赋值函数
- 数据库加强