如何在 iOS 中列出声音文件?
Posted
技术标签:
【中文标题】如何在 iOS 中列出声音文件?【英文标题】:How to list sound files in iOS? 【发布时间】:2012-08-08 08:59:32 【问题描述】:在我的应用程序中,我导入了 4 个声音文件。现在我想在一个视图中列出所有的声音文件。当用户单击任何一种声音时,需要像在警报应用程序中一样选择并播放它(选择警报声音)。这里的不同之处在于我从我的项目中获得了声音。我在 SO 和 Google 中进行了搜索,但找不到完全解决此问题的方法。
【问题讨论】:
【参考方案1】:假设“在我的应用程序中我导入了 4 个声音文件”意味着这些文件在您的应用程序包中(并且还假设文件的扩展名是 MP3 - 您可以将其更改为它们实际拥有的任何扩展名):
NSString *bundlePath = [[NSBundle mainBundle] resourcePath];
NSFileManager *mgr = [[NSFileManager alloc] init];
NSArray *allFiles = [mgr contentsOfDirectoryAtPath:bundlePat error:NULL];
for (NSString *fileName in allFiles)
if ([[fileName pathExtension] isEqualToString:@"mp3"])
NSString *fullFilePath = [bundlePath stringByAppendingPathComponent:fileName];
// fullFilePath now contains the path to your MP3 file
DoSomethingWithFile(fullFilePath);
【讨论】:
是的..你是对的我会测试这个并让你知道..谢谢你的回答 谢谢,一切都很好。我可以获得所有的 mp3 文件。。+1 我尝试使用此代码播放音频文件NSURL *file = [NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"shake_sound" ofType:@"mp3"]]; NSError *error = nil; audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:file error:&error]; audioPlayer.numberOfLoops = -1; [audioPlayer setVolume:1.0]; [audioPlayer prepareToPlay]; [audioPlayer play];
,但它返回错误The operation couldn’t be completed. (OSStatus error -50.)
任何想法谢谢
@Vinoth 您创建的 URL 错误。 NSURL *file = [NSURL fileURLWithPath:fullFilePath]
@ahmad 不用大喊大叫。可能他还没有被允许。希望他能接受。
抱歉耽搁了……我刚试过你的 NSURL 代码。它工作得很好……非常感谢以上是关于如何在 iOS 中列出声音文件?的主要内容,如果未能解决你的问题,请参考以下文章
iOS 推送通知 - 如何在没有声音的情况下指定警报和徽章?