首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVAudioFile无法从文档目录中读取文件

AVAudioFile无法从文档目录中读取文件
EN

Stack Overflow用户
提问于 2016-04-21 23:31:38
回答 2查看 455关注 0票数 0
代码语言:javascript
复制
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/audio.mp3",documentsDirectory];
NSURL *audioPathURL = [NSURL fileURLWithPath:filePath];
NSFileManager *filemanager = [[NSFileManager alloc]init];
    if ([filemanager fileExistsAtPath:filePath])
    {
AVAudioFile *audioFile = [[AVAudioFile alloc] initForReading:audioPathURL error:&err];
}

这不能读取音频文件,它返回audioFile nil。对于相同的代码,当我从NSBundle传递url时,比如

代码语言:javascript
复制
NSString *path  = [[NSBundle mainBundle] pathForResource:@"Audio" ofType:@"mp3"];
NSURL *pathURL = [NSURL fileURLWithPath : path]; 

它工作得很好,任何建议都可以。谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-04-22 02:19:58

问题可能是用于将文件名追加到path的"/“。在下面的更改中尝试

代码语言:javascript
复制
NSString *filePath = [NSString stringWithFormat:@"%@audio.mp3",documentsDirectory];

或者尝试下面的替代方案:

代码语言:javascript
复制
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"audio.mp3"];
票数 0
EN

Stack Overflow用户

发布于 2016-04-22 13:03:09

NSBundle类用于查找应用程序捆绑包中的内容,但Documents目录在捆绑包之外,因此生成路径的方式不适用于Documents目录。

如下所示进行尝试:

代码语言:javascript
复制
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"audio.mp3"];

NSURL *audioPathURL = [NSURL fileURLWithPath:filePath];
NSFileManager *filemanager = [[NSFileManager alloc]init];

if ([filemanager fileExistsAtPath:filePath])
{
      AVAudioFile *audioFile = [[AVAudioFile alloc] initForReading:audioPathURL error:&err];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36774225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档