[英]Flutter iOS Storage audio doesnt Play with audioplayer, fluttersound and just audio
我正在开发一个可以录制语音并从存储中播放的应用程序。 我已经尝试了所有这些软件包,并且仅在真正的 iOS 设备上出现错误。 在仿真器方面,ios 也没有问题。 我正在用 flutter flutter_sound录制音频。
目录是
tempDir = await getTemporaryDirectory();
记录;
startRecorderx(
FlutterSoundRecorder flutterSoundRecorder, Directory? tempDir) async {
log(tempDir!.path.toString());
PermissionStatus status;
try {
status = await Permission.microphone.request();
} catch (e) {
throw e;
}
log(tempDir.path.toString());
if (status != PermissionStatus.granted)
throw RecordingPermissionException("You must give acces to mic");
pathToRecord =
"${tempDir.path}/${DateTime.now().millisecondsSinceEpoch.toString()}.aac";
await flutterSoundRecorder.startRecorder(
toFile: "$pathToRecord",
codec: Codec.aacADTS,
);
}
然后我无法从路径 netiher 3 包音频播放器flutter_sound播放此文件。
play(path) async {
File file = File(path);
Uint8List bytes = file.readAsBytesSync();
await audio.play(path);
//log(result.toString());
/* await flutterSoundPlayer.startPlayer(
//fromURI: "$path",
fromDataBuffer: bytes,
) ;*/
update();
}
我只收到来自flutter_sound的错误。
PlatformException (PlatformException(Audio Player, startPlayer failure, null, null))
路径的问题。 iOS 总是返回不同的路径。 我猜他们为“安全”掩盖了目录的路径。 如果您要存储文件的完整路径,您可以使用 function 获得真实路径,这是我的情况,您的路径的子串取决于您的情况,请注意您的情况;
applicationDocumentDirectory 保存文件的位置; /Users/alperenbaskaya/Library/Developer/CoreSimulator/Devices/D3C845C6-D8CE-40FA-9060-1D8062E7F597/data/Containers/Data/Application/17501EFE-57A4-4C71-8C4C-58BBC57D1177/Documents/1661040154934.jpg
那么我的操作就是这样;
Future<String> getCurrentUrl(String url)async{
if(Platform.isIOS){
String a = url.substring(url.indexOf("Documents/") + 10, url.length) ;
Directory dir = await getApplicationDocumentsDirectory();
a = "${dir.path}/$a";
return a;
}
else{
return url;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.