iOS音頻播放

·iOS系統(tǒng)中的音頻播放方式·AVAudioPlayer产舞、AVPlayer裹刮、系統(tǒng)聲音、音頻隊列

·AVAudioPlayer·使用簡單方便庞瘸,但只能播放本地音頻捧弃,不支持流媒體播放

·AVPlayer·iOS4.0以后,可以使用AVPlayer播放本地音頻和支持流媒體播放擦囊,但提供接口較少违霞,處理音頻不夠靈活·音頻隊列

·音頻隊列主要處理流媒體播放,提供了強大且靈活的API接口(C函數(shù)的接口)瞬场,但處理起來也較為復雜

·播放系統(tǒng)聲音·音頻數(shù)據可分為壓縮和非壓縮的存儲類型买鸽。壓縮的音頻文件雖然文件體積較小(相對于非壓縮的)贯被,但需要耗費處理器的性能進行解壓和解碼眼五。

·如果音頻文件體積較小妆艘,壓縮后的音頻文件,也不會節(jié)省較大的磁盤空間看幼。像這一類小型非壓縮的文件可以注冊成為系統(tǒng)聲音·格式為:caf/wav/aiff格式批旺,且時長小于30s



- (void)viewDidLoad {

? ? [super viewDidLoad];


? ? //1.plist文件Required background modes

? ? //App plays audio or streams audio/video using AirPlay

? ? //2.設置后臺播放

? ? [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];

? ? //1取得本地音頻文件路徑

? ? NSString*filePath =? [[NSBundle mainBundle] pathForResource:@"安靜" ofType:@"mp3"];


? ? NSURL*url = [NSURLfileURLWithPath:filePath];

? ? //創(chuàng)建全局播放器? AVAudioPlayer 只能播放本地音頻文件

? ? _audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];

? ? //2播放流媒體音樂,AVPlayer都支持

? ? //獲得網絡鏈接

? ? NSString *str = @"http://ra01.sycdn.kuwo.cn/resource/n3/32/56/3260586875.mp3";


? ? NSURL*url1 = [NSURLURLWithString:str];

? ? _player= [[AVPlayeralloc]initWithURL:url1];


}

//1播放本地音樂

- (IBAction)playLocalMusic:(id)sender {


? ? if(_audioPlayer.isPlaying){

? ? ? ? [_audioPlayerpause];

? ? }else{

? ? ? ? [_audioPlayerplay];

? ? }

}

//2播放流媒體音樂

- (IBAction)playMusic:(id)sender {


? ? if(_isPlay) {

? ? ? ? [_playerpause];

? ? }else{

? ? ? ? [_playerplay];

? ? }

? ? _isPlay = !_isPlay;

}

//3播放系統(tǒng)聲音

- (IBAction)playSystemSound:(id)sender {


? ? NSString *filePath = [[NSBundle mainBundle] pathForResource:@"44th Street Medium.caf" ofType:nil];

? ? NSURL*url = [NSURLfileURLWithPath:filePath];

? ? UInt32? systemSoundID =10;

? ? //注冊系統(tǒng)聲音

? ? AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), &systemSoundID);

? ? //根據id播放系統(tǒng)聲音

? ? AudioServicesPlaySystemSound(systemSoundID);

? ? //設置手機振動

? ? AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

}


//設置鎖屏時界面顯示的播放信息

-(void)_initUI{

? ? /* MPMediaItemPropertyAlbumTitle

?? ? // MPMediaItemPropertyAlbumTrackCount

?? ? // MPMediaItemPropertyAlbumTrackNumber

?? ? // MPMediaItemPropertyArtist

?? ? // MPMediaItemPropertyArtwork

?? ? // MPMediaItemPropertyComposer

?? ? // MPMediaItemPropertyDiscCount

?? ? // MPMediaItemPropertyDiscNumber

?? ? // MPMediaItemPropertyGenre

?? ? // MPMediaItemPropertyPersistentID

?? ? // MPMediaItemPropertyPlaybackDuration

?? ? // MPMediaItemPropertyTitle*/


? ? MPMediaItemArtwork *artWork = [[MPMediaItemArtwork alloc ] initWithImage:[UIImage imageNamed:@"mp3.jpg"]];

?? NSDictionary *dic = @{

? ? ? ? ? ? ? ? ? ? ? ? ? MPMediaItemPropertyAlbumTitle:@"兄弟你變了",

? ? ? ? ? ? ? ? ? ? ? ? ? MPMediaItemPropertyArtist:@"龐龍",

? ? ? ? ? ? ? ? ? ? ? ? ? MPMediaItemPropertyArtwork:? artWork

? ? ? ? ? ? ? ? ? ? ? ? ? };


? ? [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:dic];


}

-(BOOL )canBecomeFirstResponder{


? ? return YES;

}

-(void)viewWillAppear:(BOOL)animated{


? ? [superviewWillAppear:animated];

? ? [self becomeFirstResponder];

? ? [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

? ? [self_initUI];


}

-(void)viewWillDisappear:(BOOL)animated{


? ? [superviewWillDisappear:animated];

? ? [self resignFirstResponder];

? ? [[UIApplication sharedApplication] endReceivingRemoteControlEvents];


}

//設置遠程監(jiān)控

-(void)remoteControlReceivedWithEvent:(UIEvent *)event{


? ? if (event.type == UIEventTypeRemoteControl) {


? ? ? ? switch(event.subtype) {

? ? ? ? ? ? case UIEventSubtypeRemoteControlPlay:


? ? ? ? ? ? ? ? [_audioPlayerplay];


? ? ? ? ? ? ? ? NSLog(@"播放");

? ? ? ? ? ? ? ? break;

? ? ? ? ? ? case UIEventSubtypeRemoteControlPause:

? ? ? ? ? ? ? ? [_audioPlayerpause];


? ? ? ? ? ? ? ? NSLog(@"暫停");

? ? ? ? ? ? ? ? break;

? ? ? ? ? ? case UIEventSubtypeRemoteControlNextTrack:

? ? ? ? ? ? ? ? NSLog(@"下一首");

? ? ? ? ? ? ? ? break;

? ? ? ? ? ? case UIEventSubtypeRemoteControlPreviousTrack:

? ? ? ? ? ? ? ? NSLog(@"上一首");

? ? ? ? ? ? ? ? break;


? ? ? ? ? ? default:

? ? ? ? ? ? ? ? break;

? ? ? ? }

? ? }

}

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末诵姜,一起剝皮案震驚了整個濱河市汽煮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌棚唆,老刑警劉巖暇赤,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宵凌,居然都是意外死亡鞋囊,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門瞎惫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來溜腐,“玉大人,你說我怎么就攤上這事微饥《喊牵” “怎么了古戴?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵欠橘,是天一觀的道長。 經常有香客問我现恼,道長肃续,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任叉袍,我火速辦了婚禮始锚,結果婚禮上,老公的妹妹穿的比我還像新娘喳逛。我一直安慰自己瞧捌,他們只是感情好,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布润文。 她就那樣靜靜地躺著姐呐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪典蝌。 梳的紋絲不亂的頭發(fā)上曙砂,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機與錄音骏掀,去河邊找鬼鸠澈。 笑死柱告,一個胖子當著我的面吹牛,可吹牛的內容都是我干的笑陈。 我是一名探鬼主播际度,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼新锈!你這毒婦竟也來了甲脏?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤妹笆,失蹤者是張志新(化名)和其女友劉穎块请,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拳缠,經...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡墩新,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了窟坐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片海渊。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖哲鸳,靈堂內的尸體忽然破棺而出臣疑,到底是詐尸還是另有隱情,我是刑警寧澤徙菠,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布讯沈,位于F島的核電站,受9級特大地震影響婿奔,放射性物質發(fā)生泄漏缺狠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一萍摊、第九天 我趴在偏房一處隱蔽的房頂上張望挤茄。 院中可真熱鬧,春花似錦冰木、人聲如沸穷劈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽歇终。三九已至,卻和暖如春雕沿,著一層夾襖步出監(jiān)牢的瞬間练湿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工审轮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肥哎,地道東北人辽俗。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像篡诽,于是被迫代替她去往敵國和親崖飘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內容