android - 如何在 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)
解决方案
推荐阅读
- npm - 使用本地文件夹作为 package.json 存储库
- amazon-web-services - 关于在 Amazon linux 中永久挂载 S3 存储桶
- angular - 过滤掉数组Angular中的嵌套数据
- python - 满足特定条件后如何获取行索引
- android - GoogleSignInClient.signInIntent 崩溃 - 您应用的 AndroidManifest.xml 中的必需元数据标记不存在
- javascript - 在 DOM 中渲染 React 组件
- android - 无法解决“com.github.bashizip:business-hours-picker:v1.1.0”
- python - 如何将变量从一个类传递到另一个类?
- javascript - WebGL质量帧缓冲区多重采样不起作用
- javascript - 使用 Web Audio API 或任何 Javascript 音频库(如 howler.js、tone.js)的音频效果(左右声道之间有 20 毫秒的延迟)?