我已经开始开发一个音乐播放器。我做了一些额外的kotlin逻辑来检索设备上的所有音频文件元数据,从Android作为元数据列表。我试图理解一个本地路径应该看起来像just_audio理解。我目前的实现使用了一个废弃的键- MediaStore.Audio.Media.DATA用于contentResolver,它返回这样的路径/storage/emululated/0/Download/scifri20181123-episode.mp3。这个路径可以被插件使用,或者我需要找到另一种方式来检索不同格式的路径?同样的问题也适用于专辑封面。
是的,如果它是一个有效的文件路径,那么just_audio将能够打开它。您可以将其传递到setFilePath
:
var filePath = '/storage/emulated/....../foo.mp3';
await player.setFilePath(filePath);
这是一个方便的方法:
setAudioSource(AudioSource.uri(Uri.file(filePath)));
,其中Uri.file(filePath)
将创建包含file:///storage/emulated/....
的Uri
实例。在引擎盖下。
请注意,如果你的应用程序试图访问自己的应用程序数据/缓存目录之外的任何文件,它也需要权限,还有其他的Flutter包可以帮助你做到这一点。
还要注意,还有一个现有的flutter包使用名为flutter_audio_query的内容解析器API,所以如果它包含了你需要的东西,你可能不需要编写自己的Kotlin代码。