首先就是选网址,优酷有两个开放平台一个是优酷开放平台http://open.youku.com/,一个是优酷视频云的网址 http://cloud.youku.com/。前面那个的网站的播放器,笔者亲测是不行的。后面的那个网站的播放器是可用的。当时开发时,在这里卡了一两天。真是坑爹。然后就是集成了,后面优酷视频云里面的文档简直不能看。只有亲自试错了。首先下载网址里面的demo,然后将里面的YoukuPlayerOpenSDK当做Moudle导入自己的项目,依赖。然后将优酷里面的PlayerAcivity复制到自己项目,然后资源文件报错,自己看着办,一个个复制。然后配置
<!-- 优酷client_id及client_secret配置 这里需要切换为自己的id和secret -->
<meta-data
android:name="client_id"
android:value="" />
千万千万要记得在自定义的Application里面初始化优酷的组件,不初始化绝逼报空指针错误。
public static YoukuPlayerBaseConfiguration configuration;
configuration = new YoukuPlayerBaseConfiguration(this) {
/**
* 通过覆写该方法,返回“正在缓存视频信息的界面”,
* 则在状态栏点击下载信息时可以自动跳转到所设定的界面.
* 用户需要定义自己的缓存界面
*/
@Override
public Class<? extends Activity> getCachingActivityClass() {
// TODO Auto-generated method stub
return CachingActivity.class;
}
/**
* 通过覆写该方法,返回“已经缓存视频信息的界面”,
* 则在状态栏点击下载信息时可以自动跳转到所设定的界面.
* 用户需要定义自己的已缓存界面
*/
@Override
public Class<? extends Activity> getCachedActivityClass() {
// TODO Auto-generated method stub
return CachedActivity.class;
}
/**
* 配置视频的缓存路径,格式举例: /appname/videocache/
* 如果返回空,则视频默认缓存路径为: /应用程序包名/videocache/
*
*/
@Override
public String configDownloadPath() {
// TODO Auto-generated method stub
//return "/myapp/videocache/"; //举例
return null;
}
};
同样复制进去,把资源性错误慢慢的填起来。然后把优酷的项目里面的AndroidManifest.xml里面的android:icon="@drawable/ic_launcher"删掉,不删就报错然后就可以运行了。笔者这边项目已经导入很多包,不出所料的果然碰到了support-v4包冲突。解决办法是
dexOptions { preDexLibraries = false }
或者是
compile (
'com.android.support:appcompat-v7:22.2.1'
){ exclude
group
:
"com.android.support"
, module:
"support-v4"
}这样
最后发现在有的64位Android 5.0到6.0机器上报dex加载错误,libluajava.so加载不到。解决办法是在加上
defaultConfig{
ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "mips" }
}
最后集成后如图