java - 当我使用 DASH 时,我的 Exoplayer 播放器给我一个错误
问题描述
06-26 12:32:30.141 16571-16980/com.example.dell.exoplayer_test E/ExoPlayerImplInternal: Source error.
com.google.android.exoplayer2.ParserException: org.xmlpull.v1.XmlPullParserException: unterminated entity ref (position:TEXT @1:218 in java.io.InputStreamReader@c8b4a4f)
at com.google.android.exoplayer2.source.dash.manifest.DashManifestParser.parse(DashManifestParser.java:105)
at com.google.android.exoplayer2.source.dash.manifest.DashManifestParser.parse(DashManifestParser.java:58)
at com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:130)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:308)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: org.xmlpull.v1.XmlPullParserException: unterminated entity ref (position:TEXT @1:218 in java.io.InputStreamReader@c8b4a4f)
at org.kxml2.io.KXmlParser.readEntity(KXmlParser.java:1219)
at org.kxml2.io.KXmlParser.readValue(KXmlParser.java:1401)
at org.kxml2.io.KXmlParser.next(KXmlParser.java:393)
at org.kxml2.io.KXmlParser.next(KXmlParser.java:313)
at com.google.android.exoplayer2.source.dash.manifest.DashManifestParser.parse(DashManifestParser.java:98)
at com.google.android.exoplayer2.source.dash.manifest.DashManifestParser.parse(DashManifestParser.java:58)
at com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:130)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:308)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
这是我的代码行。
此方法用于初始化视频
private void initializePlayer() {
if (player == null) {
player = ExoPlayerFactory.newSimpleInstance(new DefaultRenderersFactory(this),
new DefaultTrackSelector(), new DefaultLoadControl());
playerView.setPlayer(player);
player.setPlayWhenReady(playWhenReady);
player.seekTo(currentWindow, playbackPosition);
}
prepareExoPlayer();
}
这里使用 DASH ,我想问题可能就在这里
private MediaSource buildMediaSource(Uri uri) {
DataSource.Factory dataSourceFactory =
new DefaultHttpDataSourceFactory("ua",BANDWIDTH_METER);
DashChunkSource.Factory dashChunkSourceFactory =
new DefaultDashChunkSource.Factory(dataSourceFactory);
return new DashMediaSource
(uri, dataSourceFactory, dashChunkSourceFactory, null, null);
}
也准备其他方法但说同样的错误
private MediaSource buildMediaSource(Uri uri) {
DataSource.Factory dataSourceFactory =
new DefaultHttpDataSourceFactory("ua",BANDWIDTH_METER);
DashChunkSource.Factory dashChunkSourceFactory =
new DefaultDashChunkSource.Factory(dataSourceFactory);
return new DashMediaSource
(uri, dataSourceFactory, dashChunkSourceFactory, null, null);
}
我该如何解决这个问题?我研究了其他类似的问题,但没有类似的问题。
解决方案
推荐阅读
- javascript - 画布仅显示在滑块的第一个图像上或连接到每个图像的底部
- c# - 如何检查是否满足两个条件?
- arrays - 根据 jq 请求的值创建数组
- javascript - FancyTree 引导主题不适用
- windows - 非提升进程能否使用 Windows 筛选平台 (WFP)?
- python - 大熊猫制作的数据杂乱无章的频率表
- python - 将多个样式应用于数据框特定列
- sequelize.js - 续集 findByPk 返回 null
- java - Cucumber, Java Picocontainer / Constructor injection: TestContext & ScenarioContext), 如何在多个步骤定义之间共享多个数据
- python - 当我在 macos catalina 中使用 launchctl 时如何修复“不允许操作”