【问题标题】:iPhone background music playeriPhone背景音乐播放器
【发布时间】:2013-04-25 19:51:23
【问题描述】:

任何人都可以指导我学习教程,或者向我展示播放背景音乐的实际代码。我需要它能够启动和停止。这不是一个任务,所以你知道。我的任务已经完成了,我只想给它添加音乐,我不知道怎么做。谢谢!

【问题讨论】:

    标签: iphone ios objective-c background-music


    【解决方案1】:

    您可以使用 AVAudioPlayer

    //You have to import AvFoundation to use AVAudioPlayer
    #import <AVFoundation/AVFoundation.h>
    
    -(void) playMusicFile:(NSString *) songName
    {   
        NSString *musicFile = [[NSBundle mainBundle] pathForResource:songName ofType:@"mp3"];
    
        NSError *soundError = nil;
        self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:musicFile] error:&soundError];
        if(self.audioPlayer == nil)
        {
            NSLog(@"%@",soundError);
        }
        else
        {
            //Delegation is optional but it helps you do stuff after song finished playing etc
            [self.audioPlayer setDelegate:self];
            //Set number of repeats, 0 is default plays once, negative values makes it play infinitely
            [self.audioPlayer setNumberOfLoops:0];
            //Prepare to play is not always necessary, but otherwise it can take time to play
            [self.audioPlayer prepareToPlay];
            [self.audioPlayer play];
        }
    }
    
    //This is the delegate called after the song finished playing, you can use it to play other songs, or do other stuff
    -(void) audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
    {
        ...
    }
    

    停止和暂停:

    //You can easily stop and pause using: 
    [self.audioPlayer stop]; //Stop doesn't work as you would expect. It doesn't set the current time to 0 but only undoes the setup you had with the audioplayer.
    [self.audioPlayer pause];
    
    //It is possible to call [self.audioPlayer play] after each method and playback will continue from where it left off.
    

    欲了解更多信息,请访问参考:http://developer.apple.com/library/ios/#DOCUMENTATION/AVFoundation/Reference/AVAudioPlayerClassReference/Reference/Reference.html

    【讨论】:

    • 太棒了,非常感谢。我看到你的文件类型为@“mp3”,但我应该把我拥有的歌曲的实际名称放在哪里,比如@“背景音乐”?
    • 我分享了一个playMusicFile函数,如果你想播放backgroundmusic.mp3,可以这样调用:[self playMusicFile:@"backgroundmusic"]。
    【解决方案2】:

    AVPlayerAVAudioPlayer 应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多