首页 > 解决方案 > 如何在 Exo 播放器中播放这样的 http 文件?

问题描述

我正在使用 exoplayer 播放在线流。当我从某个公共 IP 服务器传递链接时,它工作正常

MediaSource videoSource = new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(Uri.parse("https://storage.googleapis.com/exoplayer-test-media-0/play.mp3"));

上面的网址工作正常。

但是当我使用自己的网址时

 MediaSource videoSource = new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(Uri.parse("http://admin:admin@192.168.0.4:8732/cam4/ERecordings/4_UNIVIEW_192.168.1.13/01-07-2020/14-39-23.mp4"));

它显示错误。我在 vlc 和 mx android 播放器中粘贴了完全相同的 url,它们工作正常,每台设备都在同一个 wifi 上工作。

错误:

E/ExoPlayerImplInternal: Source error.
    com.google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException: Response code: 401
        at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:211)
        at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:147)
        at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:844)
        at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:320)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:764)

标签: androidstreamexoplayerexoplayer2.x

解决方案


推荐阅读