-
Notifications
You must be signed in to change notification settings - Fork 247
SDKIntegration
xinbaicheng edited this page Jul 16, 2017
·
10 revisions
- 最低支持Android系统版本:2.3
- 支持的体系结构:armv5/armv7a/arm64/x86/x86_64
本SDK提供了对Android 5种体系架构的支持,但实际并不需要将其全部集成至APP, 徒增APP的size
当前手机主流为armeabi-v7a
和arm64-v8a
, 且armeabi-v7a
的库可在arm64-v8a
的机器上运行, 建议集成armeabi-v7a
的库即可
需要注意的是, 如若APP已经集成其它SDK某个体系结构的动态库时, 则必须集成播放SDK对应体系结构的动态库,例如:
APP已集成其它SDK的arm64-v8a
的动态库,则也必须集成本播放SDK的arm64-v8a
的动态库,否则在arm64-v8a
的手机使用本播放SDK播放视频时会崩溃
使用Android Studio开发, 建议在build.gradle里配置abiFilters
, 指定APP使用的ABI, 具体请见后续的示例
推荐使用Google官方的Android IDE: Android Studio, 下载地址
下面以demo的 build.gradle
为例, 介绍在集成SDK时的注意事项
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion '25.0.0'
defaultConfig {
applicationId "com.ksyun.player.demo"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
// 此处很重要,指定APP只使用 armeabi-v7a和arm64-v8a的库
ndk {
abiFilters 'armeabi-v7a','arm64-v8a'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets.main {
jniLibs.srcDirs 'src/main/libs' // 动态库和jar的存放路径
jni.srcDirs = [] // This prevents the auto generation of Android.mk
}
}
//新版本直播库已支持jcenter
//dependencies {
// compile files('src/main/libs/libksyplayer.jar')
// compile files('src/main/libs/libksystat.jar')
//}
//引用jcenter
dependencies {
...
compile 'com.ksyun.media:libksyplayer-java:1.9.2'
compile 'com.ksyun.media:libksyplayer-armv7a:1.9.2'
compile 'com.ksyun.media:libksyplayer-arm64:1.9.2'
...
}
请不要混淆SDK提供的jar包,在混淆配置中可添加如下语句
-keep class com.ksyun.media.player.**{ *; }
-keep class com.ksy.statlibrary.**{ *;}
在您开始开发前,需要在您AndroidManifest.xml里添加如下权限,如若没有添加相应的权限,则会出现播放错误
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />