【问题标题】:Video not stream in real device视频不在真实设备中流式传输
【发布时间】:2019-06-21 14:43:17
【问题描述】:

最近我尝试使用 Exoplayer 播放 .m3u8 视频直播。经过一段时间的编码,它在模拟器中工作正常。

这里的问题是,当我将 APK 安装到手机时,我发现 HTTP 中的 url 没有加载,但 HTTPS url 可以工作。 (HTTP 和 HTTPS 在 Emulator 中都可以正常工作)。之前有解决这个问题的,请帮忙指教。

  • 尝试使用android.widget.VideoView,但看起来效果不如Exoplayer
  • 我已将其包含在清单中 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

`

videoview = (VideoView) findViewById(R.id.video_view);
videoview.setVideoURI(Uri.parse(videoURL));

videoview.setOnPreparedListener(new OnPreparedListener() {
  @Override
  public void onPrepared() {
    videoview.start();
  }
});

`

  • 如果 url 有效,则应加载预期的 Http 和 Https。它可以在模拟器中运行。
  • 在真机上只能使用HTTPS url。

【问题讨论】:

  • 尝试了 SimpleExoPlayer HLS 模式,返回相同的结果,在模拟器中正常工作,而不是在真实的移动设备中

标签: android exoplayer


【解决方案1】:

终于找到问题原因了。这是因为 Android 9 的功能和行为发生了变化。从现在开始,没有加密的请求将永远无法工作。默认情况下,系统会期望您默认使用 TLS。

https://developer.android.com/about/versions/pie/android-9.0-changes-28

因为我的模拟器在 Android 7 中,而 Real Device 在 Android 9 中,所以这个原因。

【讨论】:

    猜你喜欢
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多