android项目接入阿里视频播放实例详解

超简单的阿里播放器:一般的MP4文件也可是使用哦~

1、先添加依赖:implementation ‘com.aliyun.dpa:oss-android-sdk:+’

2、libs里把jar和aar包加全
在这里插入图片描述
3、接下来就是代码部分了,我们要播放的直播地址是前期推流的时候申请好的,推流地址和播放地址一样使用push和pull区分,例如:
在这里插入图片描述
4、新建播放activity,其中布局文件使用:

  <SurfaceViewandroid:id="@+id/preview_view"android:layout_width="match_parent"android:layout_height="match_parent" />

5、activity代码实现
(1)初始化

        private SurfaceHolder surfaceHolder;surfaceHolder = mSurfaceView.getHolder();surfaceHolder.addCallback(new SurfaceCallback());/*** SurfaceCallback*                 */private class SurfaceCallback implements SurfaceHolder.Callback {@Overridepublic void surfaceCreated(SurfaceHolder holder) {startGetLiveDetail(0);}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {if (null != mPlayer) {mPlayer = null;}}}

(2)播放准备

   /***  播放视频准备*                 */private void preparePlay() {mPlayer = new AliVcMediaPlayer(this, mSurfaceView);//填充效mPlayer.setVideoScalingMode(MediaPlayer.VideoScalingMode.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING);
//        //开启循环播放
//        mPlayer.setCirclePlay(false);startPlay(playerUrl);
//        startPlay(DEFAULT_URL);}

(3)播放视频

/*** 播放视频** @param videoUrl                 */private void startPlay(String videoUrl) {if (mPlayer == null) {preparePlay();} else {//设置缺省编码类型:0表示硬解;1表示软解;//如果缺省为硬解,在使用硬解时如果解码失败,会尝试使用软解//如果缺省为软解,则一直使用软解,软解较为耗电,建议移动设备尽量使用硬解
//            mPlayer.setDefaultDecoder(0);//如果从历史点开始播放//mPlayer.seekTo(position);//准备开始播放
//            Log.e("startPlayer==", "到了");mPlayer.prepareAndPlay(videoUrl);mPlayer.play();mPlayer.setFrameInfoListener(new MediaPlayer.MediaPlayerFrameInfoListener() {@Overridepublic void onFrameInfoListener() {WaitDialog.dismiss();
//                    Log.e("onFrameInfoListener===", "首帧画面出现");}});mPlayer.setErrorListener(new MediaPlayer.MediaPlayerErrorListener() {@Overridepublic void onError(int i, String s) {
//                    Log.e("layerErrorListener===", "播放异常");}});}}

(4)最后记得在onDestroy时销毁它,防止资源异常

 @Overrideprotected void onDestroy() {super.onDestroy();if (mPlayer != null) {mPlayer.pause();mPlayer.destroy();mPlayer = null;
//            Log.e("onDestroy===", "onDestroy");}if (mSurfaceView != null)mSurfaceView = null;}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部