播放本地音樂的小呆萌

簡單做一個播放音樂的小demo:

  • 搭建界面,放三個按鈕,播放、暫停、停止
  • 播放音效,因為文件小,所以不需要進行什么控制。音樂文件的時間比較長,那就會有暫停播放、繼續(xù)播放這些控制的需求。那就不能簡單的搞一個soundID去播放,而是需要用到AVAudioPlayer這個類。
  • 創(chuàng)建的時候,需要指定url,一個url對應(yīng)一個對象,并且是只讀的,不能修改。所以說,如果你想播放一首新的音樂,就需要重新創(chuàng)建一個AVAudioPlayer對象
  • prepareToPlay,準備播放,把音頻文件加載到內(nèi)存中。也可以直接調(diào)用play 方法,它就會隱式調(diào)用prepareToPlay方法
  • pause,暫定;stop,停止。
    蘋果這里有一個非常不爽的地方,停止的時候,默認也會繼續(xù)播放,如果需要真正挺值得話,就要將時間進行歸零操作。
    • isPlaying 是否正在播放
    • duration 當前播放音樂的總時長
    • currentTime 當前播放的時間點

下面是實現(xiàn)代碼:
ViewController.m

#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>

/**
 1. 需要使用AVFoundatiaon框架
 2. 創(chuàng)建音樂播放器
 3. 根據(jù)需求, 進行播放/暫停/停止
 */

@interface ViewController ()
@property (nonatomic, strong) AVAudioPlayer *player;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 創(chuàng)建音樂播放器
    
    //1. 獲取URL路徑
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"xxx.mp3" withExtension:nil];
    
    //2. 創(chuàng)建一個error對象
    NSError *error;
    
    //3. 創(chuàng)建音樂播放器
    self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    
    if (error) {
        NSLog(@"有錯誤產(chǎn)生是的邏輯判斷");
    }
}

- (IBAction)playClick:(id)sender {
    //1. 準備播放 --> 將音頻文件加載到內(nèi)存中 --> 這句話可以不寫 --> play會隱式調(diào)用prepareToPlay方法. 但是規(guī)范來說, 還是會寫上
    [self.player prepareToPlay];
    
    //2. 開始播放
    [self.player play];
}

- (IBAction)pauseClick:(id)sender {
    // 暫停播放
   [self.player pause];
}

- (IBAction)stopClick:(id)sender {
    // 停止播放
    [self.player stop];
    
    // 歸零操作 / 時間重置 currentTime--> 秒為單位
    self.player.currentTime = 0;
}

@end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容