网友通过本文主要向大家介绍了android音乐播放器ppt,android中音乐播放器,android qq音乐播放器,android做音乐播放器,android写音乐播放器等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
Android--音乐播放器
1、什么是Open Core?
Open Core是 Android 多媒体框架的核心,所有 Android平台的音频、视频的采用以及播放等操作,都是通过它来实现。
2、Open Core 的具体功能
- 1、多媒体文件的播放、下载,包括:3GPP,MPEG-4,AAC 和 MP3 containers。
- 2、流媒体文件的下载、实时播放,包括:3GPP,HTTP 和 RTSP/RTP。
- 3、动态视频和静态图像的编码、解码,例如:MPEG-4,H.263 和 AVC (H.264),JPEG。
- 4、语音编码格式:MP3,AAC,AAC+。
- 5、视频和图像格式:3GPP,MPEG-4 和 JPEG。
- 6、视频会议:基于 H324-M 标准。
Open Core是一个多媒体的框架,从宏观上来看,它主要包含了两大方面的内容:
- 1、PVPPlayer:提供媒体播放器的功能,完成各种音频(Audio)、视频(Video)流的回放(Playback)功能。
- 2、PVAuthor:提供媒体流记录的功能,完成各种音频、视频流以及静态图像的捕获功能。
3、Mediaplayer 介绍
MediaPlayer类可以用来播放音频、视频和流媒体,MediaPlayer包含了 Audio 和 Video 的播放功能,在 Android 的界面上, Music 和 Video 两个应用程序都是调用MediaPlayer实现的。下面两张图是MediaPlayer 在 Android 和 Open Core 的示例图:
下面是图例显示MediaPlayer 的生命周期
3.1、MediaPlayer 常用方法介绍
- 方法:create(Contextcontext,Uriuri)
解释:静态方法,通过Uri创建一个多媒体播放器。 - 方法:create(Contextcontext, int resid)
解释:静态方法,通过资源ID创建一个多媒体播放器 - 方法:create(Contextcontext,Uriuri,SurfaceHolderholder)
解释:静态方法,通过Uri和指定 SurfaceHolder 【抽象类】 创建一个多媒体播放器 - 方法:getCurrentPosition()
解释:返回 Int, 得到当前播放位置 - 方法:getDuration()
解释:返回 Int,得到文件的时间 - 方法:getVideoHeight()
解释:返回 Int ,得到视频的高度 - 方法:getVideoWidth()
解释:返回 Int,得到视频的宽度 - 方法:isLooping()
解释:返回 boolean ,是否循环播放 - 方法:isPlaying()
解释:返回 boolean,是否正在播放 - 方法:pause()
解释:无返回值 ,暂停 - 方法:prepare()
解释:无返回值,准备同步 - 方法:prepareAsync()
解释:无返回值,准备异步 - 方法:release()
解释:无返回值,释放MediaPlayer对象 - 方法:reset()
解释:无返回值,重置MediaPlayer对象 - 方法:seekTo(int msec)
解释:无返回值,指定播放的位置(以毫秒为单位的时间) - 方法:setAudioStreamType(int streamtype)
解释:无返回值,指定流媒体的类型 - 方法:setDataSource(Stringpath)
解释:无返回值,设置多媒体数据来源【根据 路径】 - 方法:setDataSource(FileDescriptorfd, long offset, long length)
解释:无返回值,设置多媒体数据来源【根据 FileDescriptor】 - 方法:setDataSource(FileDescriptorfd)
解释:无返回值,设置多媒体数据来源【根据 FileDescriptor】 - 方法:setDataSource(Contextcontext,Uriuri)
解释:无返回值,设置多媒体数据来源【根据 Uri】 - 方法:setDisplay(SurfaceHoldersh)
解释:无返回值,设置用 SurfaceHolder 来显示多媒体 - 方法:setLooping(boolean looping)
解释:无返回值,设置是否循环播放 - 事件:setOnBufferingUpdateListener(MediaPlayer.OnBufferingUpdateListenerlistener)
解释:监听事件,网络流媒体的缓冲监听 - 事件:setOnCompletionListener(MediaPlayer.OnCompletionListenerlistener)
解释:监听事件,网络流媒体播放结束监听 - 事件:setOnErrorListener(MediaPlayer.OnErrorListenerlistener)
解释:监听事件,设置错误信息监听 - 事件:setOnVideoSizeChangedListener(MediaPlayer.OnVideoSizeChangedListenerlistener)
解释:监听事件,视频尺寸监听 - 方法:setScreenOnWhilePlaying(boolean screenOn)
解释:无返回值,设置是否使用 SurfaceHolder 显示 - 方法:setVolume(float leftVolume, float rightVolume)
解释:无返回值,设置音量 - 方法:start()
解释:无返回值,开始播放 - 方法:stop()
解释:无返回值,停止播放
4、完整音乐播放例子演示
实现的功能:
1.暂停/播放、下一首/上一首,点击某一首时播放
2.支持拖动进度条快进
3.列表排序
4.来电话时,停止播放,挂断后继续播放
5.可在后台播放
界面:
main.xml:
item.xml:
import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import Android.app.Activity; import Android.content.BroadcastReceiver; import Android.content.Context; import Android.content.Intent; import Android.content.IntentFilter; import Android.media.MediaPlayer; import Android.media.MediaPlayer.OnCompletionListener; import Android.os.Bundle; import Android.os.Environment; import Android.os.Handler; import Android.telephony.PhoneStateListener; import Android.telephony.TelephonyManager; import Android.view.View; import Android.widget.AdapterView; import Android.widget.Button; import Android.widget.ListView; import Android.widget.SeekBar; import Android.widget.SimpleAdapter; import Android.widget.TextView; import Android.widget.AdapterView.OnItemClickListener; import Android.widget.SeekBar.OnSeekBarChangeListener; public class MainActivity extends Activity { private TextView nameTextView; private SeekBar seekBar; private ListView listView; private List
- 方法:create(Contextcontext,Uriuri)