音频重叠问题

时间:2016-06-08 14:25:45

标签: ios objective-c

我正在使用objective-c开发iOS应用。启动应用程序时,将播放背景音乐。当用户单击帮助按钮时,应继续播放背景音乐。此外,当用户从帮助屏幕返回主屏幕时,应该连续播放背景音乐。

对于我来说,当我从帮助导航到主菜单时,会播放新的背景音乐以及旧的背景音乐。所以,我现在听到两首背景音乐。

有人可以帮我解决这个问题吗?

此致 Bharathi。

1 个答案:

答案 0 :(得分:0)

如果您在UIApplicationDelegate中保留了对音频播放器的引用(或其他一些保留的单例),则可以解决您的问题。

//in the .h
@property (nonatomic, strong) AVAudioPlayer *player;

//in the .m

- (void) playMusic
{
    if (self.player == nil) {
        NSString *path = [NSString stringWithFormat:@"%@/music.mp3", [[NSBundle mainBundle] resourcePath]];
        NSURL *soundUrl = [NSURL fileURLWithPath:path];
        self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil];
    }
    if (!self.player.isPlaying) {
        [self.player play];
    }
}

通过这种方式,您可以通过以下方式在任何地方拨打电话:

[(MyAppDelegate*)[UIApplication sharedApplication].delegate playMusic];

虽然将SoundsManager类作为单身人员保留在你身边可能会有利于处理你需要跟踪的所有声音,如果你不仅仅需要这个声音。