android - Android Exoplayer 无法打开资产音频文件
问题描述
我尝试assets
使用 exoplayer 从 androids 文件夹播放本地音频文件 (.mp3)。
我将以下代码用于测试目的:
val uri = Uri.fromFile(File("//assets/iron_maiden_fear_of_the_dark.mp3"))
println("$uri") --> file:///assets/iron_maiden_fear_of_the_dark.mp3
现在我尝试创建一个 exoplayer AssetDataSource:
val dataSpec = DataSpec(uri)
val assetDataSource = AssetDataSource(this)
assetDataSource.open(dataSpec)
这会引发异常:
com.google.android.exoplayer2.upstream.AssetDataSource$AssetDataSourceException: java.io.FileNotFoundException: assets/iron_maiden_fear_of_the_dark.mp3
我不知道为什么?
解决方案
通过使用RawResourceDataSource
文件res/raw
夹中的文件解决了这个问题。
推荐阅读
- java - Selenium java:如何知道 WebElement 指向哪个 DOM 元素?
- devexpress - 如何在不接触其他任何东西的情况下连续输入条形码?
- ubuntu - sh sed 替换问题
- git - 如何在 AWS Code Commit 中限制拉取请求批准
- ocaml - OCAML 模块包含无法泛化的类型变量
- python - 如何在 openai-gym 环境中使用“离散”对象?
- python - 如何将两个正则表达式与中间的“填充”合并?
- jvm - JVM 是独立于它所安装的物理机器运行,还是与它一起工作?
- sql-server-2012 - sql server 如何比较字符串
- kotlin - 如何向 Kotlin Dokka 文档添加页脚?