您的位置:华清远见教育科技集团 >> Android资料 >> Android基于MediaPlayer的视频播放  
 
Android基于MediaPlayer的视频播放
分享到:

在VideoView.java中提供了视频播放的实例。视频播放和音频播放一样都是通过MediaPlayer来实现的。

为了进行视频播放,必须设置数据源、音频流类型等,以加载不同的解码器和采用相应的音频冲突策略。为了捕捉到视频播放中的各种消息,需要设置不同的监听器。

MediaPlayer的常用方法包括:

SipManager用于初始化SIP链接和接入SIP服务等。能够创建SIP会话。比较常用的方法包括:

setDataSource() //设置数据源
    getVideoHeight() //获得视频高度
    getVideoWidth() //获得视频宽度
    getDuration() //获得时长
    getCurrentPosition() //获得当前位置
    setVolume() //设置音量
    start() //开始播放
    stop() //停止播放
    seekto() //定位
    setAudioSessionId() //设置音频会话ID

try {
        mMediaPlayer=new MediaPlayer(); //创建MediaPlayer
        //设置监听器
        mMediaPlayer.setOnPreparedListener(mPreparedListener);
        mMediaPlayer.setOnVideoSizeChangedListener(mSizeChangedListener);
        mDuration=-1;
        mMediaPlayer.setOnCompletionListener(mCompletionListener);
        mMediaPlayer.setOnErrorListener(mErrorListener);
        mMediaPlayer.setOnBufferingUpdateListener(mBufferingUpdateListener);
        mCurrentBufferPercentage=0;
        //设置数据源
        mMediaPlayer.setDataSource(mContext, mUri);
        mMediaPlayer.setDisplay(mSurfaceHolder);
        //设置音频流类型
        mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mMediaPlayer.工补农 setScreenOnWhilePlaying(true);
        mMediaPlayer.prepareAsync();
        mCurrentState=STATE_PREPARING;
        attachMediaController();
        mMediaPlayer.start();
        mCurrentState=STATE_PLAYING;
        }
        catch (IOException ex) {
        Log.w(TAG, "Unable to open content: " + mUri, ex);
        mCurrentState=STATE_ERROR;
        mTargetState=STATE_ERROR;
        mErrorListener.onError(mMediaPlayer, MediaPlayer.MEDIA_ERROR_UNKNOWN, 0);
        return;
                }
        catch (IllegalArgumentException ex) {
        Log.w(TAG, "Unable to open content: " + mUri, ex);
        mCurrentState=STATE_ERROR;
        mTargetState=STATE_ERROR;
        mErrorListener.onError(mMediaPlayer, MediaPlayer.MEDIA_ERROR_UNKNOWN, 0);
        return;
        }
        …

视频播放的原生接口位于android_media_MediaPlayer.cpp文件中。

 
 更多相关文章

·Android 中如何使用SIP服务
·Android音频混响特效的设置
·Android可视化音频均衡器
·Android重低音及环绕音音效的添加
·如何使用Android JetPlayer类
·Android RingtoneManager 铃声管理