Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 本机文件路径_Flutter_Just Audio - Fatal编程技术网

Flutter 本机文件路径

Flutter 本机文件路径,flutter,just-audio,Flutter,Just Audio,我已经开始开发一款音乐播放器。我做了一些额外的kotlin逻辑来从Android检索设备上的所有音频文件元数据,作为元数据列表。我试图理解本机路径应该是什么样子,以便让just_audio理解。我当前的实现使用了一个不推荐使用的键-MediaStore.Audio.Media.DATA for contentResolver,它返回如下路径/storage/simulated/0/Download/scifri20181123-eposion.mp3。这个路径可以被插件使用吗?或者我需要找到另一

我已经开始开发一款音乐播放器。我做了一些额外的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软件包,我自己做了所有事情:),我可以比较插件在做什么