关于MediaPlayer

来源:互联网 发布:淘宝运动鞋 编辑:程序博客网 时间:2024/06/05 21:07
d

MediaPlayer.java

 

这个类是多媒体为上层提供JNI调用的封装,下面列出一些主要的函数

 

public MediaPlayer()  //构造函数,这个函数里面会调用android_media_MediaPlayer.cpp里面的sp<MediaPlayer> mp = new MediaPlayer();,为当前应用生成mediaplayer控制对象,注意,这个MediaPlayerC++层的,其实这个时候还没有生成具体播放器对象

 

public void setDisplay(SurfaceHolder sh) //video的显示设置surfaceholder句柄

 

setVideoScalingMode //设置video扫描模式默认值VIDEO_SCALING_MODE_SCALE_TO_FIT

 

MediaPlayer create除了NEW生成mediaplayer外,还可以调用create函数生成

 

setDataSource()  设置数据来源 ,参数可以是本地路径或者Content URI,这里会调用C++层的setDataSource,通过C++层的mediaplayerservice创建一个player实体

 

        const sp<IMediaPlayerService>& service(getMediaPlayerService());

        if (service != 0) {

            sp<IMediaPlayer> player(service->create(this, mAudioSessionId));

            if ((NO_ERROR != doSetRetransmitEndpoint(player)) ||

                (NO_ERROR != player->setDataSource(httpService, url, headers))) {

                player.clear();

            }

            err = attachNewPlayer//(player);

        }

 

public void prepare() //个人理解是异步加载媒体数据,准备player播放

 

public void start() //播放

 

public void startWithoutWakelock()  //播放,无需唤醒CPU

 

private int getAudioStreamType() //获取音频类型

 

setAudioStreamType //设置音频类型,在prepare之前调用

 

public void setVolume//设置音量

0 0
原创粉丝点击