2013-07-04 2 views
0

Я являюсь абсолютным новичком как в объективе, так и в других средах, поэтому, пожалуйста, будьте терпеливы. Вот моя проблема: мне нужно воспроизводить звуковые файлы, чтобы каждый из них останавливался, когда запускался другой, прямо сейчас они перекрываются; вот фрагмент моего кода. Благодарим вас заблаговременно и дайте мне знать, если вам нужны другие детали.остановить первый звук, когда играет секунда

- (IBAction)soundfirst { 
    NSString *path = 
     [[NSBundle mainBundle] pathForResource:@"hi2" ofType:@"mp3"]; 

    player1 = [[AVAudioPlayer alloc] 
     initWithContentsOfURL:[NSURL fileURLWithPath:path] 
         error:NULL]; 

    player1.delegate = self; 
    [player1 play]; 
} 
- (IBAction)soundsecond { 
    [player1 stop]; 

    NSString *path = 
     [[NSBundle mainBundle] pathForResource:@"hi2" ofType:@"mp3"]; 

    player2 = [[AVAudioPlayer alloc] 
     initWithContentsOfURL:[NSURL fileURLWithPath:path] 
         error:NULL]; 

    player2.delegate = self; 
    [player2 play]; 
} 

ответ

1

Лучший способ сделать что-то, когда вы застряли, чтобы посмотреть в документации.

В вашем коде вы создаете объект типа AVAudioPlayer и называете его player1.

AVAudioPlayer Документация: http://developer.apple.com/library/ios/#DOCUMENTATION/AVFoundation/Reference/AVAudioPlayerClassReference/Reference/Reference.html

взгляд под методами экземпляра, и есть метод там называется остановка.

Таким образом, в первом методе, вы можете сделать что-то вроде

if(player2.playing){ 
    [player2 stop]; 
} 

[player1 play]; 
+0

Большое спасибо, я постараюсь посмотреть, работает ли оно. Спасибо, тем не менее. –

+0

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

+0

Привет, Хан, жаль беспокоить вас, но у меня появилась новая проблема: вчера ваше решение сработало, но я хотел сделать код более простым и менее загроможденным. Итак, теперь у меня есть эта проблема, когда я пытаюсь использовать «if»: использование необъявленного идентификатора «playound2». Где я могу опубликовать код без создания нового вопроса? Заранее спасибо. Н. –

0
#import <AudioToolbox/AudioServices.h> 

SystemSoundID buttonClickSoundID; 

+ (void)playButtonClickSound { 
    if (buttonClickSoundID == 0) { 
     NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"button_click" ofType:@"wav"]; 
     CFURLRef soundURL = (CFURLRef)[NSURL fileURLWithPath:soundPath]; 
     AudioServicesCreateSystemSoundID(soundURL, &buttonClickSoundID); 
    } 
    AudioServicesPlaySystemSound(buttonClickSoundID); 
} 
+0

что-то вроде этого – Anton

+0

Благодаря @Anton я, кажется, решил сейчас. Хорошо провести день/ночь –

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