Flutter 本机文件路径
我已经开始开发一款音乐播放器。我做了一些额外的kotlin逻辑来从Android检索设备上的所有音频文件元数据,作为元数据列表。我试图理解本机路径应该是什么样子,以便让just_audio理解。我当前的实现使用了一个不推荐使用的键-MediaStore.Audio.Media.DATA for contentResolver,它返回如下路径/storage/simulated/0/Download/scifri20181123-eposion.mp3。这个路径可以被插件使用吗?或者我需要找到另一种方法以不同的格式检索路径?Flutter 本机文件路径,flutter,just-audio,Flutter,Just Audio,我已经开始开发一款音乐播放器。我做了一些额外的kotlin逻辑来从Android检索设备上的所有音频文件元数据,作为元数据列表。我试图理解本机路径应该是什么样子,以便让just_audio理解。我当前的实现使用了一个不推荐使用的键-MediaStore.Audio.Media.DATA for contentResolver,它返回如下路径/storage/simulated/0/Download/scifri20181123-eposion.mp3。这个路径可以被插件使用吗?或者我需要找到另一
同样的问题也适用于相册艺术。是的,如果它是一个有效的文件路径,那么just_audio将能够打开它。您可以将其传递到
setFilePath
:
var filePath='/storage/emulated/…../foo.mp3';
等待player.setFilePath(filePath);
这是一种方便的方法:
setAudioSource(AudioSource.uri(uri.file(filePath));
其中Uri.file(filePath)
将创建一个Uri
实例,其中包含类似file:///storage/emulated/....
。在引擎盖下
请注意,如果您的应用程序尝试访问其自己的应用程序数据/缓存目录之外的任何文件,则也需要权限,并且有可用的方法来帮助您
另外请注意,还有一个使用调用的内容解析器API的现有颤振包,因此如果它包含您需要的内容,您可能不需要编写自己的Kotlin代码。当使用
setAudioSource(AudioSource.uri(uri.file(filePath)))时。
,文件路径是否可以直接指向flatter目录中的资产而无需额外权限?我试图将本地文件加载到播放列表中,但没有收到这样的文件错误还有另一种方法叫做setAsset(assetPath)
,它是setAudioSource(AudioSource.uri(uri.parse('asset:///$assetPath')的方便方法
。这可以直接从应用程序的AssetBundle访问资产,不需要任何特殊权限。我不知道Flatter软件包,我自己做了所有事情:),我可以比较插件在做什么