2012-05-22 6 views
-1

Я использую AVFoundation framework для воспроизведения звука. В начале файла, у меня есть:Ошибка приложений при воспроизведении звука

#import <AVFoundation/AVAudioPlayer.h> 

И AVFoundation framework правильно добавил к моему проекту. Однако, когда я использую этот код для воспроизведения звука, приложение вылетает:

NSString *pathForBgMusicFile = [[NSBundle mainBundle] pathForResource:@"ClenchedTeeth" ofType:@"mp3"]; 
NSURL *bgMusicFile = [[NSURL alloc] initFileURLWithPath:pathForBgMusicFile]; 
AVAudioPlayer *bgMusic = [[AVAudioPlayer alloc] initWithContentsOfURL:bgMusicFile error:NULL]; 
[bgMusic play]; 

Кто-нибудь знает, как это исправить? Заранее спасибо!

+2

Вы можете показать журналы аварии? – rishi

+0

делает ли ваше приложение что-нибудь еще? Если вы создаете фиктивное приложение только с этим, это сбой? ARC или ручное управление памятью? –

+1

выше код, похоже, горит. – samfisher

ответ

0

Попробуйте установить AVAudioSession, а также перед попыткой воспроизведения. Как это:

AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 
    audioSession.delegate = self; 
    [audioSession setActive:YES error:nil]; 
    [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil]; 

Не забудьте импортировать, и убедитесь, что ваш класс реализует как AVAudioPlayerDelegate и AVAudioSessionDelegate.

0

Я не перед моим макинтош, попробуйте это (я только изменил вторую линию):

NSString *pathForBgMusicFile = [[NSBundle mainBundle] pathForResource:@"ClenchedTeeth" ofType:@"mp3"]; 
NSURL *bgMusicFile = [NSURL fileURLWithPath:pathForBgMusicFile]; 
AVAudioPlayer *bgMusic = [[AVAudioPlayer alloc] initWithContentsOfURL:bgMusicFile error:NULL]; 
[bgMusic play]; 
+0

Если это не поможет, может быть полезно, если вы дадите точную строку, где происходит сбой приложения. –

+0

[игра bgMusic]; линия - вот что происходит. Вот журнал сбоев: – Toby

+0

2012-05-22 15: 51: 27.552 Macbeth [67496: 10703] Ошибка загрузки /System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn: dlopen (/System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn, 262): Символ не найден: ___CFObjCIsCollectable Ссылка на: /System/Library/Frameworks/Security.framework/Versions/A/Security – Toby

1
#import <AudioToolbox/AudioToolbox.h> 

и на your.m файл

FBundleRef mainBundle = CFBundleGetMainBundle(); 
     CFURLRef soundFileURLref; 
     soundFileURLref = CFBundleCopyResourceURL(mainBundle ,(CFStringRef)@"yourSoundFile",CFSTR ("wav"),NULL); 
     UInt32 soundID; 
     AudioServicesCreateSystemSoundID(soundFileURLref, &soundID); 
     AudioServicesPlaySystemSound(soundID);} 

вы можете используйте этот код внутри кнопки, если это ваш случай. не забудьте добавить структуру инструментов Audio. Удачи

Смежные вопросы