频道栏目
首页 > 程序开发 > 移动开发 > 其他 > 正文
MediaPlayer
2016-11-30 09:49:34         来源:tst116的博客  
收藏   我要投稿

使用MediaPlayer播放音频:

当程序控制MediaPlayer对象装载音频完成后,程序可以调用MediaPlayer的如下三个方法进行播放:

start() :开始或回复播放:

stop():停止播放》

pause()暂停播放。

为了让MediaPlayer来装载指定音频文件,MediaPlayer提供了简单的静态方法:

static MediaPlayer create(Context context , Uri uri): 从指定Uri来装载音频文件,

并返回新创建的MediaPlayer对象。

static MediaPlayer create(Context context ,int resid ): 从resid资源id文件对应的资源文件

中装载音频文件,并返回新创建的MediaPlayer对象。

如果程序需要使用MediaPlayer循环播放多个音频文件,使用MediaPlayer的静态create方法就不太合适。

此时可通过MediaPlayer的setDataSource()方法来装载指定的音频文件。MediaPlayer提供了如下方法来

指定装载相应的音频文件:

void setDataSource (String path) : 指定装载path路径代表的文件。

void setDataSource(FileDescriptor fd,long offset,long length);指定装载fd所代表的文件

中从offset开始、长度为length的文件内容。

void setDataSource(FileDescriptor fd) 指定装载fd所代表的文件

void setDataSource(Context context,Uri uri)指定装载uri所代表的文件。

执行了setDataSource后,MediaPlayer并未真正去装载那些音频文件,还需要调用MediaPlayer

的perpare()方法去准备音频文件。所谓准备就是让MediaPlayer真正装载音频文件。

因此使用已有的MediaPlayer对象装载下一首歌曲的代码模块为:

mediaplayer.reset();

mediaplayer.setDataSource("/mnt/sdcard/next.mp3");

mediaplayer.prepare();

mediaplayer.start();

mediaplayer提供了一些绑定事件监听器的方法:

setOnCompletionListener(MediaPlayer.OnCompletionListener listener):为MediaPlayer的播放

完成事件绑定事件监听器。

总结:归纳MediaPlayer播放不同来源的音频文件。

1、播放应用的资源文件需要两步即可:

调用MediaPlayer的create()方法加载指定资源文件。

调用MediaPlayer的start pause stop 等方法控制播放即可。

MediaPlayer mediaplayer = MediaPlayer.create(this,R.raw.song);

mediaplayer.start();

2、播放应用的原始资源文件:

调用Context的getAssets()方法获取应用的AssetManager。

调用AssetManager对象的openFd(String name)方法打开指定的原生资源,该方法返回一个AssetFileDescriptor

对象。

调用AssetFileDescriptor的getFileDescriptor() getStartOffset()和getLength方法来获取音频文件的

FileDescriptor、开始位置、长度等。

创建MediaPlayer对象,并调用MediaPlayer对象的setDataSource方法来装载音频资源。

调用MediaPlayer对象的prepare方法准备音频。

调用MediaPlayer的start pause stop 等方法控制播放即可。

3、播放外部存储器上音频文件。步骤

创建MediaPlayer对象,并调用MediaPlayer对象的setDataSource(String path)方法来装载音频资源文件。

调用MediaPlayer对象的prepare方法准备音频。

调用MediaPlayer的start pause stop 方法控制播放即可。

MediaPlayer mediaplayer = new MediaPlayer();

mediaplayer.setDataSource(“/mut/sdcard/song.mp3”);

mediaplayer.prepare();

mediaplayer.start();

4、播放来自网络的音频文件有两种方法:

(1);直接调用MediaPlayer的静态create(Context context,URL uri)

(2):调用MediaPlayer的setDataSource(Context context,Uri uri)装载指定Uri对应的音频文件,

步骤:1、根据网络上的音频文件所在的位置创建Uri对象。

2、创建MediaPlayer对象调用MediaPlayer对象的setDataSource()方法装载Uri的音频文件

3、调用MediaPlayer对象的prepare方法准备音频。

4、调用MediaPlayer的start pause stop 方法控制播放即可。

eg: Uri uri = Uri.parse("https://www.crazyit.org/adb.mp3");

MediaPlayer mediaplayer = new MediaPlayer();

mediaplayer.setDataSource(this,uri);

mediaplayer.prepare();

mediaplayer.start();

使用VideoView播放视频:

为了在Android中播放声音,Android提供了VideoView组件,他就是一个位于Android.widget包下的组件,它的

作用于ImageView类似,只是ImageView用于显示图片,而VideoView用于播放视频。

步骤如下:1、在界面中定义VideoView组件,或在程序中创建VideoView组件。

2、调用VideoView的如下两个方法来加载指定视频。

setVideoPath(String path)加载path文件所代表的视频。

setVideoURL(URL url)加载uri所对应的视频。

3、调用VideoView的start stop pause 方法来控制视频播放。

实际上与videoview一起结合使用的还有一个MediaController类,它的作用是提供一个友好的图形控制界面,

通过控制界面来控制视频的播放。

MediaController mediacontroller = new MediaController(this);

videoView.setMediaController(mediacontroller);

使用MediaRecorder录制视频:

Android中录制音频,Android手机提供了麦克风硬件,Android提供了MediaRecorder类,使用MediaRecorder

录制音频过程简单,步骤如下:

1、创建MediaRecorder对象。

2、调用MediaRecorder对象的setAudioSource方法来设置声音来源,一般传入

MediaRecorder.AudioSource.MIC 参数指定录制来麦克风的声音。

3、调用MediaRecorder对象的setOutPutFormat()设置所录制的音频文件的格式。

4、调用MediaRecorder对象的setAudioEncoder() setAudioEncodingBitRate(int bitRate)

setAudioSamplingRate(int samplingRate)设置所录制声音的编码格式,编码位率,采样率等

这些参数可以控制录制声音的品质,文件大小,品质越好,声音文件越大。

5、调用MediaRecorder的setOutPutFile(String path )方法设置录制的音频文件保存位置,

6、调用MediaRecorder的prepare方法准备录制

7、调用MediaRecorder对象的start方法开始录制。

8、录制完成,调用MediaRecorder对象的stop方法停止录制,并调用release方法释放资源。

点击复制链接 与好友分享!回本站首页
相关TAG标签 MediaPlayer
上一篇:状态模式
下一篇:用json方式存储数据
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站