【问题标题】:Does Exoplayer supports playing videos via POST METHOD?Exoplayer 是否支持通过 POST METHOD 播放视频?
【发布时间】:2019-03-07 14:51:41
【问题描述】:
我有一个 API 可以从我们的服务器检索视频,该 API 使用 POST 方法,并且需要对 Headers 进行授权,对 body 参数进行 deviceInfo。
例子。
网址:https://myapi.com/api/pretty_video.mp4
正文:deviceInfo = 设备信息
HEADER:授权:承载“令牌”
方法:发布
我找不到任何使用 POST 方法从 URL 播放视频的 ExoPlayer 示例。
【问题讨论】:
标签:
java
android
exoplayer2.x
【解决方案1】:
解决了!
我用 OkHttp 解决了。
DefaultBandwidthMeter defaultBandwidthMeter = new DefaultBandwidthMeter();
DataSource.Factory dataSourceFactory = new OkHttpDataSourceFactory(new OkHttpClient
.Builder()
.connectTimeout(1, TimeUnit.MINUTES)
.readTimeout(1,TimeUnit.MINUTES)
.retryOnConnectionFailure(false)
.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
MediaType CONTENT_TYPE = MediaType.parse("application/x-www-form-urlencoded");
RequestBody requestBody = RequestBody.create(CONTENT_TYPE,"deviceinfo=12345");
Request request = chain.request().newBuilder()
.post(requestBody) . // HERE IS THE KEY
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + auth)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.build();
return chain.proceed(request);
}
})
.build(), Util.getUserAgent(context,context.getString(R.string.app_name)), defaultBandwidthMeter);