暴风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