一、簡單介紹
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),鼓樓企業(yè)網(wǎng)站建設(shè),鼓樓品牌網(wǎng)站建設(shè),網(wǎng)站定制,鼓樓網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,鼓樓網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
簡單來說,音頻可以分為2種
(1)音效
又稱“短音頻”,通常在程序中的播放時長為1~2秒
在應(yīng)用程序中起到點綴效果,提升整體用戶體驗
(2)音樂
比如游戲中的“背景音樂”,一般播放時間較長
框架:播放音頻需要用到AVFoundation.framework框架
二、音效的播放
1.獲得音效文件的路徑
復(fù)制代碼 代碼如下:
NSURL *url = [[NSBundle mainBundle] URLForResource:@"m_03.wav" withExtension:nil];
2.加載音效文件,得到對應(yīng)的音效ID
復(fù)制代碼 代碼如下:
SystemSoundID soundID = 0;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), soundID);
3.播放音效
復(fù)制代碼 代碼如下:
AudioServicesPlaySystemSound(soundID);
注意:音效文件只需要加載1次
4.音效播放常見函數(shù)總結(jié)
加載音效文件
復(fù)制代碼 代碼如下:
AudioServicesCreateSystemSoundID(CFURLRef inFileURL, SystemSoundID *outSystemSoundID)
釋放音效資源
復(fù)制代碼 代碼如下:
AudioServicesDisposeSystemSoundID(SystemSoundID inSystemSoundID)
播放音效
復(fù)制代碼 代碼如下:
AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID)
播放音效帶點震動
復(fù)制代碼 代碼如下:
AudioServicesPlayAlertSound(SystemSoundID inSystemSoundID)
三、程序示例
先導(dǎo)入需要依賴的框架
導(dǎo)入需要播放的音效文件素材
說明:AVFoundation.framework框架中的東西轉(zhuǎn)換為CF需要使用橋接。
代碼示例:
復(fù)制代碼 代碼如下:
YYViewController.m文件
//
// YYViewController.m
// 14-音效播放
//
// Created by apple on 14-8-8.
// Copyright (c) 2014年 yangyong. All rights reserved.
//
#import "YYViewController.h"
#import
@interface YYViewController ()
@end
復(fù)制代碼 代碼如下:
@implementation YYViewController
- (void)viewDidLoad
{
[super viewDidLoad];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//1.獲得音效文件的全路徑
NSURL *url=[[NSBundle mainBundle]URLForResource:@"buyao.wav" withExtension:nil];
//2.加載音效文件,創(chuàng)建音效ID(SoundID,一個ID對應(yīng)一個音效文件)
SystemSoundID soundID=0;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, soundID);
//把需要銷毀的音效文件的ID傳遞給它既可銷毀
//AudioServicesDisposeSystemSoundID(soundID);
//3.播放音效文件
//下面的兩個函數(shù)都可以用來播放音效文件,第一個函數(shù)伴隨有震動效果
AudioServicesPlayAlertSound(soundID);
//AudioServicesPlaySystemSound(#systemsoundid)
}
@end
說明:點擊屏幕可以播放音效文件。
音樂的播放
一、簡單說明
音樂播放用到一個叫做AVAudioPlayer的`類,這個類可以用于播放手機本地的音樂文件。
注意:
(1)該類(AVAudioPlayer)只能用于播放本地音頻。
(2)時間比較短的(稱之為音效)使用AudioServicesCreateSystemSoundID來創(chuàng)建,而本地時間較長(稱之為音樂)使用AVAudioPlayer類。
二、代碼示例
AVAudioPlayer類依賴于AVFoundation框架,因此使用該類必須先導(dǎo)入AVFoundation框架,并包含其頭文件(包含主頭文件即可)。
導(dǎo)入必要的,需要播放的音頻文件到項目中。
代碼示例:
復(fù)制代碼 代碼如下:
//
// YYViewController.m
// 15-播放音樂
//
#import "YYViewController.h"
#import
@interface YYViewController ()
@end
復(fù)制代碼 代碼如下:
@implementation YYViewController
- (void)viewDidLoad
{
[super viewDidLoad];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//1.音頻文件的url路徑
NSURL *url=[[NSBundle mainBundle]URLForResource:@"235319.mp3" withExtension:Nil];
//2.創(chuàng)建播放器(注意:一個AVAudioPlayer只能播放一個url)
AVAudioPlayer *audioPlayer=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:Nil];
//3.緩沖
[audioPlayer prepareToPlay];
//4.播放
[audioPlayer play];
}
@end
代碼說明:運行程序,點擊模擬器界面,卻并沒有能夠播放音頻文件,原因是代碼中創(chuàng)建的AVAudioPlayer播放器是一個局部變量,應(yīng)該調(diào)整為全局屬性。
可將代碼調(diào)整如下,即可播放音頻:
復(fù)制代碼 代碼如下:
#import "YYViewController.h"
#import
@interface YYViewController ()
@property(nonatomic,strong)AVAudioPlayer *audioplayer;
@end
復(fù)制代碼 代碼如下:
@implementation YYViewController
- (void)viewDidLoad
{
[super viewDidLoad];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//1.音頻文件的url路徑
NSURL *url=[[NSBundle mainBundle]URLForResource:@"235319.mp3" withExtension:Nil];
//2.創(chuàng)建播放器(注意:一個AVAudioPlayer只能播放一個url)
self.audioplayer=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:Nil];
//3.緩沖
[self.audioplayer prepareToPlay];
//4.播放
[self.audioplayer play];
}
@end
注意:一個AVAudioPlayer只能播放一個url,如果想要播放多個文件,那么就得創(chuàng)建多個播放器。
三、相關(guān)說明
新建一個項目,在storyboard中放三個按鈕,分別用來控制音樂的播放、暫停和停止。
程序代碼如下:
復(fù)制代碼 代碼如下:
#import "YYViewController.h"
#import
@interface YYViewController ()
@property(nonatomic,strong)AVAudioPlayer *player;
- (IBAction)play;
- (IBAction)pause;
- (IBAction)stop;
@end
@implementation YYViewController
- (void)viewDidLoad
{
[super viewDidLoad];
//1.音頻文件的url路徑
NSURL *url=[[NSBundle mainBundle]URLForResource:@"235319.mp3" withExtension:Nil];
//2.創(chuàng)建播放器(注意:一個AVAudioPlayer只能播放一個url)
self.player=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:Nil];
//3.緩沖
[self.player prepareToPlay];
}
- (IBAction)play {
//開始播放/繼續(xù)播放
[self.player play];
}
- (IBAction)pause {
//暫停
[self.player pause];
}
- (IBAction)stop {
//停止
//注意:如果點擊了stop,那么一定要讓播放器重新創(chuàng)建,否則會出現(xiàn)一些莫名其面的問題
[self.player stop];
}
@end
注意:如果點了“停止”,那么一定要播放器重新創(chuàng)建,不然的話會出現(xiàn)莫名其妙的問題。
點擊了stop之后,播放器實際上就不能再繼續(xù)使用了,如果還繼續(xù)使用,那么后續(xù)的一些東西會無法控制。
推薦代碼:
復(fù)制代碼 代碼如下:
#import "YYViewController.h"
#import
@interface YYViewController ()
@property(nonatomic,strong)AVAudioPlayer *player;
- (IBAction)play;
- (IBAction)pause;
- (IBAction)stop;
@end
復(fù)制代碼 代碼如下:
@implementation YYViewController
#pragma mark-懶加載
-(AVAudioPlayer *)player
{
if (_player==Nil) {
//1.音頻文件的url路徑
NSURL *url=[[NSBundle mainBundle]URLForResource:@"235319.mp3" withExtension:Nil];
//2.創(chuàng)建播放器(注意:一個AVAudioPlayer只能播放一個url)
self.player=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:Nil];
//3.緩沖
[self.player prepareToPlay];
}
return _player;
}
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (IBAction)play {
//開始播放/繼續(xù)播放
[self.player play];
}
- (IBAction)pause {
//暫停
[self.player pause];
}
- (IBAction)stop {
//停止
//注意:如果點擊了stop,那么一定要讓播放器重新創(chuàng)建,否則會出現(xiàn)一些莫名其面的問題
[self.player stop];
self.player=Nil;
}
@end
四、播放多個文件
點擊,url,按住common建查看。
可以發(fā)現(xiàn),這個url是只讀的,因此只能通過initWithContentsOfUrl的方式進行設(shè)置,也就意味著一個播放器對象只能播放一個音頻文件。
那么如何實現(xiàn)播放多個音頻文件呢?
可以考慮封裝一個播放音樂的工具類,下一篇文章將會介紹具體怎么實現(xiàn)。
單純音樂播放的角度來講(不談資源獲取,比如酷狗、QQ音樂等等之流),以下兩個應(yīng)該算是iOS里面最好的了。
先說Golden Ear,國產(chǎn)開發(fā)商開發(fā),國貨也有精品,必須支持。
- 無損格式音樂文件播放器
- 支持所有常見的無損格式,包括:FLAC、APE、WAV、WavPack、AIFF、ALAC
- 可以選擇3種播放模式:1、順序播放;2、隨機;3、單首曲目循環(huán)
- 支持最高至 24bit/96KHz 無損音樂.
- 支持 AirPlay.
- 支持從其他 App 導(dǎo)入音樂文件。
- 支持FTP文件傳輸.
- 支持 CUE 文件. 名字應(yīng)與音樂文件相同。如顯示亂碼,請將其轉(zhuǎn)為UTF8格式.
- 支持 LRC 歌詞文件. 名字應(yīng)與音樂文件相同。如顯示亂碼,請將其轉(zhuǎn)為UTF8格式.
- 用戶可自行創(chuàng)建/重命名/刪除目錄
- 用戶可移動/重命名/刪除所有文件
- 顯示專輯封面(*.jpg,*.png, …). 應(yīng)與音樂文件同名,也支持"專輯名.jpg"這種形式
- 睡前計時器
- 多種播放列表主題可供挑選
再說說HF Player,免費+內(nèi)購的模式,強大的EQ模式,更強大的超精度上采樣及格式轉(zhuǎn)換,并且支持對部分耳機型號聲音輸出時進行校正,其他balabala……
總而言之,言而總之一句話:功能逆天,戰(zhàn)斗力爆表。
支持MP3/ALAC/AAC/WAV/AIFF (=48 kHz)
購買內(nèi)購之后支持:FLAC, DSF (PCM轉(zhuǎn)換, DoP), DSD-IFF (2.8 MHz/5.6 MHz, PCM轉(zhuǎn)換, DoP), WAV, AIFF, Ogg-Vorbis(=192 kHz)
lt;img src="" data-rawwidth="175" data-rawheight="175" class="content_image" width="175"gt;
有海貝音樂。
貝無損音樂播放器(Hiby Music)是一款專為HiFi設(shè)計的高音質(zhì)音樂播放器。新增安卓7.x USB無損解碼支援,以及用于遙控多款友商的硬件播放器、在手機上輕松以觸屏介面瀏覽和操作播放的功能。2015年11月,海貝音樂iOS版正式發(fā)布。2017年7月,海貝音樂3.0版(安卓版)正式上線。
新功能特性:
1. HiByLink功能可用于遠程控制多種兼容設(shè)備,遠距離無損播放高清曲目。
2. 兼容安卓7.x無損USB輸出,支持各版本安卓上DXD, DoP,原生DSD及384KHz 32bits音樂直接輸出至USB裝置。
3. 新增即時播放隊列以及即時編輯和儲存為新歌單的功能。
4. 全新UI帶來驚喜的使用體驗,新加入用戶指南。
其它特性:
1. 支持多格式無損音樂界面,包括DSD(DSF,DFF,DST), ISO, WAV,APE, FLAC, ALAC, AIFF, M4A以及AAC, WMA, MP3, OGG等。
2. 支持CUE文件。
3. 解碼精度高,32位輸出,64位浮點,128位運算,追求完美音質(zhì)不妥協(xié)。
4. 可外接USB聲卡,支持DXD, DoP,原生DSD及384KHz 32bits音樂直接輸出。
5. 支持歌曲無縫切換。
6. 支持10段高精度圖形EQ。
網(wǎng)站名稱:ios開發(fā)音樂播放器,ios開發(fā)音樂播放器的軟件
文章起源:http://chinadenli.net/article12/dsdsjdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、Google、網(wǎng)站設(shè)計公司、微信小程序、關(guān)鍵詞優(yōu)化、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)