开发者文档

播放SDK Android
简介
直播播放 Android SDK 是云帆加速推出的Android平台用于播放视频的软件开发工具包(SDK),为您提供简单、便捷的开发接口,助您在基于 Android 4.1 及以上版本的移动设备上实现视频播放功能。

播放 Android SDK

功能特点
  • 支持画面旋转
  • 支持超低延时播放,配合云帆直播服务,控制播放延迟<1.5秒
  • 支持OpenGLES渲染
  • 智能识别是否支持硬解,硬解失败自动切软解
  • 动态调整音视频同步
  • 支持无缝衔接播放,软解下无缝渲染
  • 支持秒开视频,打开速度仅需200-300毫秒
  • 支持纯音频和纯视频播放
  • 支持主流文件格式和协议,包括 flv, mp4, ts, rtmp, http, hls等协议的直播和点播
运行环境
功能Android版本备注
软解 Android 2.3及以上版本 支持无缝渲染
硬解 Android 4.1及以上版本 效率更高
下载并使用SDK

1. 从github下载工程

                    
    工程内容说明(完整下载包包含SDK、DOC、Demo三部分):
    - SDK目录:YfPlayerKit.jar、libffmpeg.so、libyfplayer.so、libyfsdl.so
    - DOC目录:YFEncoderKit帮助文档.pdf、README.MD
    - Demo:集成了推流sdk的所有功能示范
                    
                
2、鉴权

获取SDK使用许可的Token,在app启动的时候调用全局静态鉴权方法。

                     
    Authentication.AuthCallBack authCallBack = new Authentication.AuthCallBack() {
            @Override
            public void onAuthenticateSuccess() {
                Log.d(TAG, "鉴权成功~!");
            }

            @Override
            public void onAuthenticateError(int errorCode) {
                Log.d(TAG, "鉴权失败啦:" + errorCode);
            }
        };
    Authentication.Authenticate(TOKEN, authCallBack); 
                    
                

为了防止在鉴权的时候因为网络异常而鉴权失败,可以在恢复网络的时候确认一下是否鉴权成功,如果没有则再次发起鉴权。

                      
    if(!Authentication.isAuthenticateSucceed()){
            //retry
        }
                    
                

注意事项

github或官网上下载的sdk仅支持使用测试域名进行播放,正式使用请与我们联系获取正式token并设置播放域名。

3、在APP上集成SDK

YfPlayerKit(类似Android原生的VideoView,封装了Surface)

1、在layout使用YfPlayerKit

                    
    < com.yunfan.player.widget.YfPlayerKit
    android:id="@+id/surface_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true" />  
                    
                

2、实现回调接口并设置回调

                      
    //根据需要实现YfCloudPlayer.OnPreparedListener等回调接口
    mVideoView.setOnPreparedListener(this);
    mVideoView.setOnErrorListener(this);
    mVideoView.setOnBufferingUpdateListener(this);
    mVideoView.setOnInfoListener(this);
                    
                

3、播放视频

                      
    YfPlayerKit mVideoView = (YfPlayerKit) findViewById(R.id.surface_view);
    mVideoView.setVideoPath(path);
    mVideoView.start();
                    
                

4、暂停/停止播放

                      
    mVideoView.pause();//暂停
    mVideoView.stopPlayback();//停止
    mVideoView.release(true);//释放播放器
                    
                

YfCloudPlayer(类似于原生MediaPlayer,不带Surface)

1、配置播放器

                     
    YfCloudPlayer yfMediaPlayer = YfCloudPlayer.Factory.createPlayer(this, mDecodeMode);//以某种解码方式初始化播放器
    yfMediaPlayer.setDisplay(holder);//设置渲染Surface
    yfMediaPlayer.prepareAsync();//准备播放 
                    
                

2、设置YfCloudPlayer.OnPreparedListener(必需)及其他回调

                    
    yfMediaPlayer.setOnCompletionListener(mCompletionListener); 
    yfMediaPlayer.setOnPreparedListener(mPreparedListener); 
    yfMediaPlayer.setOnVideoSizeChangedListener(mSizeChangedListener); 
    yfMediaPlayer.setOnErrorListener(mErrorListener); 
                    
                

3、在OnPrepared的回调中播放视频

                    
    yfMediaPlayer.start();  
                    
                

4、停止播放

                     
    yfMediaPlayer.stop();//停止
    yfMediaPlayer.release();//释放播放器
    yfMediaPlayer=null;//释放播放器后为保证状态一致建议将其置空 
                    
                

更多功能的使用请参考Demo。

接口说明
参考DOC目录里的YfPlayerKit帮助文档
反馈和建议

技术支持:support@yfcloud.com