播放15秒mp3 ios

时间:2013-10-06 07:42:29

标签: ios audio mp3

我已经尝试了一切我能找到的尝试让我的应用程序播放mp3。我有几个2-3秒的mp3播放作为声音效果,但我试图播放15s的MP3没有任何运气。

    NSError *error;
    AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource: @"test" withExtension: @"mp3"] error:&error];
    if (error)  {
        NSLog(@"Error creating audio player: %@", [error userInfo]);
    } else {
        if([audioPlayer play] == FALSE) {
            NSLog(@"Fail %@", error);
        }
    }
    NSTimer* myTimer = [NSTimer scheduledTimerWithTimeInterval: 15.0 target: self
                                                      selector: @selector(stopMusic) userInfo: nil repeats: NO];

我怀疑计时器与它有什么关系,但我想我会包括它以防万一。基本上我的错误检查根本没有被触发。它“应该”正常播放但没有声音出现,并且没有显示错误。

我尝试了其他一些尝试让它工作,我尝试了没有计时器。我找不到像样的指南。我不需要一个完整的媒体播放器,只需要UIScreenViewController的一些背景音乐。

我也尝试过以下代码,这些代码适用于短MP3,而不是我想播放的MP3更长。

NSString *path  = [[NSBundle mainBundle] pathForResource:@"bgmusic" ofType:@"mp3"];
NSURL *pathURL = [NSURL fileURLWithPath : path];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)pathURL, &audioEffect);
AudioServicesPlaySystemSound(audioEffect);

请帮忙,我花了好几个小时试图对此进行排序。每次发布操作系统时,苹果似乎都会重新调整音频。

1 个答案:

答案 0 :(得分:2)

我为你做了一些测试:结果是默认情况下Xcode 5中没有将音乐文件添加到目标。因此URLForResource:error:可能会返回nil

尝试从项目中删除mp3。然后再次添加它,这一次让你把它添加到你的目标:

Xcode Screenshot

另一件事是:似乎你在方法中定义了AVAudioPlayer。您通常为音频播放器设置@property,否则它的生命仅限于该方法 - 并且在您到达方法结束后音乐停止播放。