2014-11-09 3 views
1

Я пытаюсь воспроизвести звук при нажатии кнопки. Во-первых, я импортировал AudioToolbox в заголовочном файле, а затем добавил код в IBAction, который срабатывает, когда кнопка нажата, например, так:Просто играть в звук в iOS

- (void)viewDidLoad { 
    [super viewDidLoad]; 
} 
- (IBAction)button1:(id)sender { 
    NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"mySong" ofType:@"wav"]; 
    SystemSoundID soundID; 
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:soundPath], &soundID); 
    AudioServicesPlaySystemSound (soundID); 
} 

Я даже бросил NSLog в методе, чтобы убедиться, что он стреляет. Это. Я тоже, но в пути foo в строке, чтобы увидеть, если он будет сбой, это так. Я убедился, что я потащил и уронил короткий звуковой файл в приложение. Протестировал мои колонки, протестировал звук на тренажере устройства, перейдя на youtube на симуляторе, все. Я не могу понять, что я делаю неправильно.

Когда я изменил код так:

- (IBAction)button1:(id)sender { 


    AVAudioPlayer *testAudioPlayer; 

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

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

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


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

Я получаю сообщение об ошибке: Предупреждение: 137: ошибка при попытке установить (NULL) частота дискретизации аудиоустройства

+1

Пробуйте тестирование на устройстве, а не в симуляторе. – matt

ответ

1

Привет 'Дат!' по вашему вопросу вы можете проверить, присутствует ли ваш аудиофайл в папке проекта. Может случиться так, что вы забыли галочку «скопировать элемент, если это необходимо», чтобы его не было в вашем файле проекта.

Вы также можете воспроизводить звуки, предоставляемые на устройстве. Посетите приведенную ниже ссылку, это будет полезно.

https://github.com/TUNER88/iOSSystemSoundsLibrary

Я проверил ваш код и он работает нормально и не получить разбился. Вот что я сделал. enter image description here

+0

Да, он присутствует в моем файле проекта. – John

+0

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

1

Как говорится в комментарии @ matt, воспроизведение звука в симуляторе не работает. У меня была эта проблема при попытке воспроизвести видео.

Забавно, что звук воспроизводится очень хорошо для одного и того же видео в приложении «Фото».

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