暴风云视频,点播

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yaxin3690/article/details/51691910

暴风SDK集成.

暴风云视频为用户提供了丰富的视频播放方式,在这里仅对" 点播 "做出讲解.
以暴风SDK2.0.2为例
暴风视频在集成过程中还是算简单的.具体集成过程如下(Android studio):
1.到暴风官方下载点播sdk的demo;
2.查看开发文档,主要是查看权限,查看注意事项.
3.讲demo工程一依赖库的方式导入as.注意在as中不需要Support V4包.(我在工程中集成的V7包).然后将so库文件添加到依赖库的src-->main--->jniLibs下.这样as就能自动加载so库文件.强demo中的权限全部拷贝到自己的工程清单文件下面.将报错的权限删除,注意:如果你使用的是暴风的MediaCenter一定的进行服务的注册和反注册,本例中是直接集成暴风的点播播放器VodPlayer.需要在清单文件进行服务的注册。
4.在as的MainActivity.java和AndroidManifest.xml代码:
permission.xml代码.Activity.xml代码.service.xml代码.MainActivity.java代码
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<activity
    android:name=".MainActivity"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:label="@string/app_name"
    android:launchMode="singleTask"
    android:theme="@style/AppTheme.NoActionBar">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<service android:name="bf.cloud.android.playutils.VideoService"></service>
public class MainActivity extends Activity {
    private VodPlayer mVodPlayer = null;
    private BFMediaPlayerControllerVod mMediaController = null;
    private String[] mUrls = {
        "servicetype=1&uid=4995606&fid=D754D209A442A6787962AB1552FF9412",
        "servicetype=1&uid=10279577&fid=7099A94CAA19F4EF2B3760D2395E2CD8"};
    private int mVideoIndex = 0;
    private long mHistory = -1;
    private static final int START_PLAY = 0;
    private Handler mHandler = new Handler(new Handler.Callback() {

        @Override
        public boolean handleMessage(Message msg) {
            switch (msg.what) {
                case START_PLAY:
                    mVodPlayer.stop();
                    if (mHistory > 0) {
                        mVodPlayer.start((int) mHistory);
                    }else{
                        mVodPlayer.start();
                    }
                    break;

                default:
                    break;
            }
            return false;
        }
    });

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        mMediaController = (BFMediaPlayerControllerVod) findViewById(R.id.vod_media_controller_vod);
        mVodPlayer = (VodPlayer) mMediaController.getPlayer();
        mVodPlayer.setDataSource(mUrls[mVideoIndex]);
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    @Override
    protected void onPause() {
        mHistory = mVodPlayer.getCurrentPosition();
        mHandler.post(new Runnable() {
            @Override
            public void run() {
                mVodPlayer.stop();
            }
        });
        super.onPause();
    }

    @Override
    protected void onStart() {
        mHandler.sendEmptyMessageDelayed(START_PLAY, 300);
        super.onStart();
    }

    @Override
    protected void onDestroy() {
        mVodPlayer.release();
        try {
            mMediaController.finalize();
        } catch (Throwable e) {
            e.printStackTrace();
        }
        super.onDestroy();
    }
}
6.注意事项.因为暴风sdkdemo中启动视频播放器使用了按钮点击事件,在本介绍中使用了handler消息机制启动播放器,暴风官方建议不要在生命周期中启动播放器.
7.将依赖库中不需要的类和文件删除.
8.ok.集成完成.
9.有什么不对的地方,请给予指出.
项目完整代码:https://github.com/luy763092/BFvideoDemo.git

猜你喜欢

转载自blog.csdn.net/yaxin3690/article/details/51691910
今日推荐