如何在 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 应用程序中连续循环播放声音文件?

如何在 iOS 中使用 vDSP 将声音文件转换为 FFT

audio_tag 仅播放第一个列出的音频

iOS 推送通知 - 如何在没有声音的情况下指定警报和徽章?

如何在不更改声音指示器的情况下在 iOS 中以最大音量播放声音文件

如何在 iOS 上使用 AVAudioPlayer 播放指定持续时间的声音?