- Android Studio 开发工具,下载地址
在app/build.gradle
中加入以下配置以开启Java8支持:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
在app/src/main
目录中的AndroidManifest.xml
中增加如下权限声明:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
从Android P系统开始,如果应用使用的是非加密的明文流量的http网络请求,则会导致该应用无法进行网络请求,https则不会受影响。由于本地代理服务需要使用http协议访问,针对这个问题,有以下两种解决方法:
(1) targetSdkVersion
降到27以下
(2) 更改网络安全配置,在app/src/main
目录中的AndroidManifest.xml
的标签中直接插入:
<application
...
android:usesCleartextTraffic="true"
...
/>
为了保证正常使用 SDK ,请在 proguard-rules.pro 文件中添加以下代码:
-dontwarn com.cdnbye.**
-keep class com.cdnbye.**{*;}
-keep interface com.cdnbye.**{*;}
-dontwarn org.webrtc.**
-keep class org.webrtc.**{*;}
dependencies {
implementation 'com.cdnbye:sdk:latest.release'
}
推荐在Application.OnCreate()
中启动P2P加速服务。在播放之前使用parseStreamUrl()方法去转换播放地址开始播放。
import com.cdnbye.sdk.P2pEngine;
public class MyApplication extends android.app.Application {
@Override
public void onCreate() {
super.onCreate();
P2pEngine.initEngine(this, YOUR_TOKEN, null);
}
}
其中 YOUR_TOKEN 是用于标识用户的字符串,请换成自己的token,点击这里查看如何注册Appid
并获取token
。
使用加速功能,必须通过SDK把地址转换成加速地址,再把转换后的地址传给播放器即可(建议使用ExoPlayer)。
private void onPlay(){
String parsedUrl = P2pEngine.getInstance().parseStreamUrl("https://your_stream.m3u8");
mediaPlayer.play(parsedUrl);
}
就这么简单,你的播放器已经具备P2P能力了!
获取完整的示例程序。
请参考常见问题
请参考常见问题
请参考常见问题