【问题标题】: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);
    
    

    【讨论】:

      猜你喜欢
      • 2013-07-08
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      相关资源
      最近更新 更多