本文档介绍了阿里云公共DNS Android SDK+ExoPlayer的接入方式。
1.概述
ExoPlayer是一个开源的多媒体播放器库,由Google开发,针对Android平台进行优化。相比于Android内置的MediaPlayer,ExoPlayer更为灵活且可扩展,适用于各种媒体播放需求,包括但不限于:本地文件、网络流媒体、及多种格式(如MP4、HLS、DASH等)的播放。
ExoPlayer在处理网络请求读取资源数据时,建议使用OkHttpDataSource
,因为OkHttp暴露了自定义DNS服务的接口,可以利用这一功能来优雅地使用阿里云公共DNS。
2.添加OkHttp扩展SDK
您需要根据您使用的ExoPlayer版本来选择对应的OkHttp扩展SDK。
如果您使用的ExoPlayer版本是androix下的media,需要添加下面的依赖项:
implementation "androidx.media3:media3-datasource-okhttp:x.x.x"
如果您使用的ExoPlayer版本是ExoPlayer2,需要添加下面的依赖项:
implementation "com.google.android.exoplayer:extension-okhttp:x.x.x"
重要
以上两种方案中OkHttp扩展库的版本均需和ExoPlayer SDK的版本保持一致。
3.使用OkHttp扩展SDK
在初始化ExoPlayer时,使用OkHttp扩展库。
说明
上一部分介绍的两个版本的ExoPlayer,使用OkHttp扩展库的代码是一样的。
ExoPlayer player = new ExoPlayer.Builder(context)
.setMediaSourceFactory(new DefaultMediaSourceFactory(new OkHttpDataSource.Factory(new Call.Factory() {
@NonNull
@Override
public Call newCall(@NonNull Request request) {
//此处clent是OkHttpClient实例,请替换成您项目中的OkHttpClient实例
return client.newCall(request);
}
})))
.build();
4.使用阿里云公共DNS
最后就是在OkHttp网络库中集成阿里云公共DNS,具体集成步骤请参考Android端OkHttp框架场景下接入阿里云公共DNS Android SDK最佳实践方案。
文档内容是否对您有帮助?