在iPhone / iPad应用程序中播放音频文件?

| 我想在我的应用程序中播放声音,因为我使用的是.mp3文件类型。它在Simulator中可以正常工作,但是当我将其午餐到设备中时,它却无法工作并且不能发出任何声音,谁能帮助我为什么它不能在设备上工作,或者哪种文件格式更适合在iPhone和iPad中播放音频文件?
NSURL *tapSound   = [[NSBundle mainBundle] URLForResource: [NSString stringWithFormat:@\"%@\",SoundFileName] withExtension: @\"\"];

// Store the URL as a CFURLRef instance
 self.soundFileURLRef = (CFURLRef) [tapSound retain];

 // Create a system sound object representing the sound file.
 AudioServicesCreateSystemSoundID (
                     soundFileURLRef,
                    &soundFileObject
                    );

AudioServicesPlaySystemSound (soundFileObject);
上面是我的代码播放声音 谢谢。     
已邀请:
如果将设备静音,则系统声音ID不会播放,这可能是原因。 (根据官方文档,它们仅真正用于实现用户界面效果,例如警报等)。 因此,我很想使用AVAudioPlayer风格的方法。作为示例(无双关语)实现:
// *** In your interface... ***
#import <AVFoundation/AVFoundation.h>

...

AVAudioPlayer *testAudioPlayer;

// *** Implementation... ***

// Load the audio data
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@\"sample_name\" ofType:@\"wav\"];
NSData *sampleData = [[NSData alloc] initWithContentsOfFile:soundFilePath];
NSError *audioError = nil;

// Set up the audio player
testAudioPlayer = [[AVAudioPlayer alloc] initWithData:sampleData error:&audioError];
[sampleData release];

if(audioError != nil) {
    NSLog(@\"An audio error occurred: \\\"%@\\\"\", audioError);
}
else {
    [testAudioPlayer setNumberOfLoops: -1];
    [testAudioPlayer play];
}



// *** In your dealloc... ***
[testAudioPlayer release];
您还应该记住设置适当的音频类别。 (请参阅AVAudioSession
setCategory:error:
方法。) 最后,您需要将AVFoundation库添加到您的项目中。为此,请在Xcode的“组和文件”列中,单击项目的目标,然后选择“获取信息”。然后选择“常规”选项卡,单击底部“链接的库”窗格中的+,然后选择“ AVFoundation.framework \”。     
老实说,我建议使用
AVAudioPlayer
代替,但是您可以尝试使用此替代代码。在您的示例中,您似乎忘了包括扩展名,这也可能是问题所在。模拟器在命名上更宽松,因此,如果您忘记了扩展名,它可能会在模拟器而不是设备上播放。
SystemSoundID   soundFileObject;
CFURLRef soundFileURLRef = CFBundleCopyResourceURL (CFBundleGetMainBundle (),CFSTR (\"sound\"),CFSTR (\"mp3\"),NULL );
AudioServicesCreateSystemSoundID (soundFileURLRef,&soundFileObject );
AudioServicesPlaySystemSound (soundFileObject);
    

要回复问题请先登录注册