IOS開發中如何調用音頻播放組件
1、與音頻相關的頭文件等都在AVFoundation.h中,所以第一步是添加音頻庫文件:
#import <AVFoundation/AVFoundation.h>
2、先找一段要播放的音頻文件,我這里找到是一個mp3文件,然后添加到項目中:
3、使用NSBundle獲取這個文件並轉化成NSData類型:
NSString *filepath = [[NSBundle mainBundle]pathForResource:@"bbb" ofType:@"mp3"]; NSData *data = [[NSData data]initWithContentsOfFile:filepath];
4、聲明一個全局變量的AVAudioPlayer對象player:
@interface ViewController (){ AVAudioPlayer *player; } @end
5、初始化全局變量player:
player = [[AVAudioPlayer alloc]initWithData:data error:nil];
6、添加一個開始、暫停播放的按鈕:
UIButton *myBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 200, 214, 80)]; myBtn.backgroundColor = [UIColor orangeColor]; myBtn.layer.cornerRadius = 20; myBtn.layer.masksToBounds = YES; myBtn.enabled = YES; [myBtn setTitle:@"開始播放" forState:UIControlStateNormal]; [myBtn addTarget:self action:@selector(myBtnAction:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:myBtn];
7、編寫按鈕的方法,點擊按鈕之后檢測player是否在播放,如果在播放,就停止播放,如果未播放,就開始播放,其中停止播放和開始播放調用的是player對象的play方法和pause方法:
-(void)myBtnAction :(UIButton*)sender{ if (player.playing) { [player pause]; [sender setTitle:@"開始按鈕" forState:UIControlStateNormal]; }else{ [player play]; [sender setTitle:@"暫停按鈕" forState:UIControlStateNormal]; } }
8、添加一個音量滑塊,音量滑塊添加一個方法volumeslidervaluechange:,當值改變時觸發這個方法:
// 音量滑塊 UISlider *volumeslider = [[UISlider alloc]initWithFrame:CGRectMake(20, 330, 374, 20)]; volumeslider.value = 0.9; [volumeslider addTarget:self action:@selector(volumeslidervaluechange:) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:volumeslider];
9、實現volumeslidervaluechange:方法,當滑塊值改變時,改變音頻播放器的音量大小:
-(void)volumeslidervaluechange:(UISlider*)sender{ player.volume = sender.value; }
模擬運行並點擊按鈕就可以聽到美妙的音樂了:
以下是完整代碼:
// // ViewController.m // ceshi // // Created by mac on 16/5/24. // Copyright © 2016年 mzw. All rights reserved. // #import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewController (){ AVAudioPlayer *player; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // 設置當前view背景色 self.view.backgroundColor = [UIColor lightGrayColor]; // 獲取項目樹中的音頻文件 NSString *filepath = [[NSBundle mainBundle]pathForResource:@"bbb" ofType:@"mp3"]; // 把獲取的音頻文件轉化為nsdata類型 NSData *data = [[NSData data]initWithContentsOfFile:filepath]; // 初始化一個音頻播放器 player = [[AVAudioPlayer alloc]initWithData:data error:nil]; // 創建一個button,點擊button開始或暫停音頻播放器的播放 UIButton *myBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 200, 214, 80)]; myBtn.backgroundColor = [UIColor orangeColor]; myBtn.layer.cornerRadius = 20; myBtn.layer.masksToBounds = YES; myBtn.enabled = YES; [myBtn setTitle:@"開始播放" forState:UIControlStateNormal]; [myBtn addTarget:self action:@selector(myBtnAction:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:myBtn]; // 音量滑塊 UISlider *volumeslider = [[UISlider alloc]initWithFrame:CGRectMake(20, 330, 374, 20)]; volumeslider.value = 0.9; [volumeslider addTarget:self action:@selector(volumeslidervaluechange:) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:volumeslider]; } -(void)myBtnAction :(UIButton*)sender{ // 如果音頻播放器處於播放狀態,點擊后就暫停播放,如果處於未播放狀態,就開始播放 if (player.playing) { [player pause]; [sender setTitle:@"開始按鈕" forState:UIControlStateNormal]; }else{ [player play]; [sender setTitle:@"暫停按鈕" forState:UIControlStateNormal]; } } -(void)volumeslidervaluechange:(UISlider*)sender{ player.volume = sender.value; } @end