Управление воспроизведением звука

Эта статья описывает, как управлять воспроизведением звука с помощью NSSound класс.

Запуск, приостанавливаясь, возобновляясь и отменяя воспроизведение звука

Игра аудиоданных с помощью NSSound класс очень прост; методы экземпляра обеспечивают управление передачей. Перечисление 1 показывает несколько методов действия, управляющих воспроизведением звука.

Перечисление 1  , Управляющее воспроизведением звука

- (IBAction) playSound:(id)sender
{
    if (loaded && ![sound isPlaying]) {
        [sound play];
        [infoTextField setStringValue:@"Playback in progress"];
    }
}
 
- (IBAction) pauseSound:(id)sender
{
    [sound pause];
    [infoTextField setStringValue:@"Playback paused"];
}
 
- (IBAction) resumeSound:(id)sender
{
    [sound resume];
    [infoTextField setStringValue:@"Playback resumed"];
}
 
- (IBAction) stopSound:(id)sender
{
    [sound stop]
    [infoTextField setStringValue:@"Playback canceled"];
}

Обнаружение, играет ли звук

isPlaying метод говорит Вам, играет ли звук, как показано в Перечислении 2.

Перечисление 2  , Определяющее, играет ли звук

- (IBAction) isSoundPlaying:(id)sender
{
    if ([sound isPlaying])
        [infoTextField setStringValue:@"The sound is playing"];
    else
        [infoTextField setStringValue:@"The sound is not playing"];
}

Обнаружение, когда звук закончил играть

Перечисление 3 показывает реализацию в качестве примера sound:didFinishPlaying: метод делегата, который вызывают, когда звук заканчивает играть.

Перечисление 3  , Выполняющее действие, когда звук заканчивает играть

- (void) sound:(NSSound *)sound didFinishPlaying:(BOOL)playbackSuccessful
{
    if (playbackSuccessful) {
        [infoTextField setStringValue:@"Playback ended successfully"];
    }
    else {
        [infoTextField setStringValue:@"Playback ended abnormally"];
    }
}