我已经开始开发音乐播放器。我做了一些额外的 kotlin 逻辑来从 Android 检索设备上的所有音频文件元数据作为元数据列表。我试图了解 just_audio 理解的原生路径应该是什么样子。我当前的实现使用不推荐使用的密钥 - MediaStore.Audio.Media.DATA 用于 contentResolver,它返回类似 /storage/emulated/0/Download/scifri20181123-episode.mp3 的路径。插件可以使用此路径还是我需要找到另一种方法来检索不同格式的路径?同样的问题也适用于专辑封面。
问问题
296 次
1 回答
2
是的,如果它是一个有效的文件路径,那么 just_audio 将能够打开它。您可以将其传递给setFilePath
:
var filePath = '/storage/emulated/....../foo.mp3';
await player.setFilePath(filePath);
这是一种方便的方法:
setAudioSource(AudioSource.uri(Uri.file(filePath)));
whereUri.file(filePath)
将创建一个Uri
包含类似file:///storage/emulated/....
. 在引擎盖下。
请注意,如果您的应用程序尝试访问其自己的应用程序数据/缓存目录之外的任何文件,它也需要权限才能这样做,并且还有其他 Flutter 包可以帮助您解决此问题。
另请注意,还有一个使用名为flutter_audio_query的内容解析器 API 的现有 Flutter 包,因此如果它包含您需要的内容,您可能不需要编写自己的 Kotlin 代码。
于 2021-02-17T04:50:01.930 回答