【发布时间】:2014-06-05 14:11:32
【问题描述】:
我有一个使用 AVAudioPlayer 类的声音播放器。我在另一个视图中下载了一些项目并将文件路径存储为 NSURL,然后将 NSURL 传递给 Player 视图控制器。但是我在尝试传递对象时遇到错误。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString path]: unrecognized selector sent to instance 0x1700c86c0'
这里是代码:
NSData *data = [NSData dataWithContentsOfFile:[podcastSource path]];
NSError *error;
mPlayer = [[AVAudioPlayer alloc] initWithData:data error:&error];
[mPlayer setDelegate:self];
if (mPlayer == nil)
{
NSLog(@"%@",error);
}
else
{
[self.player play];
....
}
请注意,我从 NSURL 收到的文件路径是这种形式:
/var/mobile/Applications/xxxxxx/Documents/90989.mp3
【问题讨论】:
-
从错误看来,当 podcastSource 应该是一个 url 时,它似乎是一个字符串......在请求其路径之前将其转换为 NSUrl。
-
“podcastSource”似乎是字符串,您将其用作
NSURL实例。
标签: ios objective-c cocoa-touch nsdata nsurl