Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
无法在IOS上的ionic应用程序中录制和保存音频_Ios_File_Cordova_Ionic Framework_Media - Fatal编程技术网

无法在IOS上的ionic应用程序中录制和保存音频

无法在IOS上的ionic应用程序中录制和保存音频,ios,file,cordova,ionic-framework,media,Ios,File,Cordova,Ionic Framework,Media,我正在制作一款ionic应用程序,它可以录制音频并将其存储到永久位置,而它在Android上运行得非常完美,IOS让我发疯 这是我正在使用的代码 创建目录的代码 if (ionic.Platform.isAndroid()) { console.log('ok..its android. setting base dir path'); $rootScope.dirBasePath = cordova.file.externalRootDirectory; } else if (ioni

我正在制作一款ionic应用程序,它可以录制音频并将其存储到永久位置,而它在Android上运行得非常完美,IOS让我发疯

这是我正在使用的代码

创建目录的代码

if (ionic.Platform.isAndroid()) {
  console.log('ok..its android. setting base dir path');
  $rootScope.dirBasePath = cordova.file.externalRootDirectory;
} else if (ionic.Platform.isIOS()) {
  console.log('it is ios, setting base path');
  $rootScope.dirBasePath = cordova.file.dataDirectory;
}

console.log($rootScope.dirBasePath);
// create directory for audio recordings
$cordovaFile.createDir($rootScope.dirBasePath, "corrit", false)
.then(function (success) {
  console.log('created dir '+JSON.stringify(success));
}, function (error) {
  console.log('error creating dir '+JSON.stringify(error));
});
正在两个平台上成功创建目录

这是重新编码音频文件的代码

timestamp = new Date()
if (ionic.Platform.isAndroid()) {
    $scope.audioFileName = timestamp.getTime()+'.amr';
} else if (ionic.Platform.isIOS()) {
    $scope.audioFileName = timestamp.getTime()+'.wav';
}
$scope.data.audioSrc = $rootScope.dirBasePath+'corrit/'+$scope.audioFileName;
console.log($scope.data.audioSrc);
$scope.data.media = $cordovaMedia.newMedia($scope.data.audioSrc);

console.log('recording audio...');
$scope.data.media.startRecord();
console.log('stoping audio...');
$scope.data.media.stopRecord();
$scope.data.media.play();
这是播放音频文件的代码

timestamp = new Date()
if (ionic.Platform.isAndroid()) {
    $scope.audioFileName = timestamp.getTime()+'.amr';
} else if (ionic.Platform.isIOS()) {
    $scope.audioFileName = timestamp.getTime()+'.wav';
}
$scope.data.audioSrc = $rootScope.dirBasePath+'corrit/'+$scope.audioFileName;
console.log($scope.data.audioSrc);
$scope.data.media = $cordovaMedia.newMedia($scope.data.audioSrc);

console.log('recording audio...');
$scope.data.media.startRecord();
console.log('stoping audio...');
$scope.data.media.stopRecord();
$scope.data.media.play();
以下是ios的控制台日志

created dir {"isFile":false,"isDirectory":true,"name":"corrit","fullPath":"/corrit/","filesystem":"<FileSystem: library-nosync>","nativeURL":"file:///var/mobile/Containers/Data/Application/C07AA015-63B3-4B10-8032-08B0352F06F0/Library/NoCloud/corrit/"}

record audio
file:///var/mobile/Containers/Data/Application/C07AA015-63B3-4B10-8032-08B0352F06F0/Library/NoCloud/corrit/1450348328418.wav
recording audio...
THREAD WARNING: ['Media'] took '575.528076' ms. Plugin should use a background thread.
exeption nativeEvalAndFetch : TypeError: undefined is not an object (evaluating 'a.reject')
stoping audio...
Failed to initialize AVAudioPlayer: The operation couldn’t be completed. (OSStatus error 2003334207.)
THREAD WARNING: ['Media'] took '18.506104' ms. Plugin should use a background thread.
created dir{“isFile”:false,“isDirectory”:true,“name”:“corrit”,“fullPath”:“/corrit/”,“filesystem”:“nativeURL”:file:///var/mobile/Containers/Data/Application/C07AA015-63B3-4B10-8032-08B0352F06F0/Library/NoCloud/corrit/"}
录音
file:///var/mobile/Containers/Data/Application/C07AA015-63B3-4B10-8032-08B0352F06F0/Library/NoCloud/corrit/1450348328418.wav
录音。。。
线程警告:['Media']采用了'575.528076'ms。插件应使用后台线程。
exeption NativeValandFetch:TypeError:undefined不是对象(正在计算“a.reject”)
停止音频。。。
未能初始化AVAudioPlayer:操作无法完成。(OSStatus错误2003334207。)
线程警告:['Media']使用'18.506104'ms。插件应使用后台线程。
我猜该文件不是指定路径的记录

怎么了


谢谢

这里有同样的问题,我不知道为什么这里有问题,我不知道为什么