一、簡單介紹

成都創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站建設、網(wǎng)站重做改版、青山網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、HTML5、商城網(wǎng)站建設、集團公司官網(wǎng)建設、外貿網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為青山等各大城市提供網(wǎng)站開發(fā)制作服務。
簡單來說,音頻可以分為2種
(1)音效
又稱“短音頻”,通常在程序中的播放時長為1~2秒
在應用程序中起到點綴效果,提升整體用戶體驗
(2)音樂
比如游戲中的“背景音樂”,一般播放時間較長
框架:播放音頻需要用到AVFoundation.framework框架
二、音效的播放
1.獲得音效文件的路徑
復制代碼 代碼如下:
NSURL *url = [[NSBundle mainBundle] URLForResource:@"m_03.wav" withExtension:nil];
2.加載音效文件,得到對應的音效ID
復制代碼 代碼如下:
SystemSoundID soundID = 0;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), soundID);
3.播放音效
復制代碼 代碼如下:
AudioServicesPlaySystemSound(soundID);
注意:音效文件只需要加載1次
4.音效播放常見函數(shù)總結
加載音效文件
復制代碼 代碼如下:
AudioServicesCreateSystemSoundID(CFURLRef inFileURL, SystemSoundID *outSystemSoundID)
釋放音效資源
復制代碼 代碼如下:
AudioServicesDisposeSystemSoundID(SystemSoundID inSystemSoundID)
播放音效
復制代碼 代碼如下:
AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID)
播放音效帶點震動
復制代碼 代碼如下:
AudioServicesPlayAlertSound(SystemSoundID inSystemSoundID)
三、程序示例
先導入需要依賴的框架
導入需要播放的音效文件素材
說明:AVFoundation.framework框架中的東西轉換為CF需要使用橋接。
代碼示例:
復制代碼 代碼如下:
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
復制代碼 代碼如下:
@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對應一個音效文件)
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框架,因此使用該類必須先導入AVFoundation框架,并包含其頭文件(包含主頭文件即可)。
導入必要的,需要播放的音頻文件到項目中。
代碼示例:
復制代碼 代碼如下:
//
// YYViewController.m
// 15-播放音樂
//
#import "YYViewController.h"
#import
@interface YYViewController ()
@end
復制代碼 代碼如下:
@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播放器是一個局部變量,應該調整為全局屬性。
可將代碼調整如下,即可播放音頻:
復制代碼 代碼如下:
#import "YYViewController.h"
#import
@interface YYViewController ()
@property(nonatomic,strong)AVAudioPlayer *audioplayer;
@end
復制代碼 代碼如下:
@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)建多個播放器。
三、相關說明
新建一個項目,在storyboard中放三個按鈕,分別用來控制音樂的播放、暫停和停止。
程序代碼如下:
復制代碼 代碼如下:
#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ù)的一些東西會無法控制。
推薦代碼:
復制代碼 代碼如下:
#import "YYViewController.h"
#import
@interface YYViewController ()
@property(nonatomic,strong)AVAudioPlayer *player;
- (IBAction)play;
- (IBAction)pause;
- (IBAction)stop;
@end
復制代碼 代碼如下:
@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的方式進行設置,也就意味著一個播放器對象只能播放一個音頻文件。
那么如何實現(xiàn)播放多個音頻文件呢?
可以考慮封裝一個播放音樂的工具類,下一篇文章將會介紹具體怎么實現(xiàn)。
1.預先準備在你開始將程序提交到App Store之前,你需要有一個App ID,一個有效的發(fā)布證書,以及一個有效的Provisioning profile。下面來看看它們各自的作用。Step 1: App ID(應用ID)App ID是識別不同應用程序的唯一標示符。每個app都需要一個App ID或者app標識。目前有兩種類型的App標識:一個是精確的App ID( explicit App ID),一個是通配符App ID( wildcard App ID)。使用通配符的App ID可以用來構建和安裝多個程序。盡管通配符App ID非常方便,但是一個精確的App ID也是需要的,尤其是當App使用iCloud 或者使用其他iOS功能的時候,比如Game Center、Push Notifications或者IAP。 如果你不確定什么樣的App ID適合你的項目,我推薦你讀下蘋果關于這一主題的文檔: Technical Note QA1713。 Step 2: Distribution Certificate(發(fā)布證書) iOS應用都有一個安全證書用于驗證開發(fā)者身份和簽名。為了可以向App Store提交app,你需要創(chuàng)建一個iOS provisioning profile 。首先需要創(chuàng)建一個distribution certificate(發(fā)布證書),過程類似于創(chuàng)建一個development certificate(開發(fā)證書)。如果你已經在實體設備上測試你的App,那么你對創(chuàng)建development certificate就已經很熟悉了。 如果對此不熟悉,我建議你讀下 蘋果關于signing certificates和provisioning profiles的詳細指導 。 Step 3: Provisioning Profile(配置文件) 一旦你創(chuàng)建了App ID和distribution certificate,你可以創(chuàng)建一個iOS provisioning profile以方便在App Store中銷售你的App。不過,你不能使用和ad hoc distribution相同的provisioning profile。你需要為App Store分銷創(chuàng)建一個單獨的provisioning profile,如果你使用通配符App ID,那么你的多個app就可以使用相同的provisioning profile。 Step 4: Build Settings(生成設置)配置App ID、distribution certificate 和provisioning profile已經完成,是時候配置Xcode中target的build settings了。在Xcode Project Navigator的targets列表中選擇一個target,打開頂部的 Build Settings選項,然后更新一下 Code Signing來跟之前創(chuàng)建的distribution provisioning profile相匹配。最近添加的provisioning profiles有時候不會立馬就在build settings的 Code Signing中看到,重啟一下Xcode就可以解決這個問題。 配置Target的Build SettingsStep 5: Deployment Target(部署目標)非常有必要說下deployment target,Xcode中每個target都有一個deployment target,它可以指出app可以運行的最小版本。不過,一旦應用在App Store中生效,再去修改deployment target,你要考慮到一定后果。如果你在更新app的時候提高了deployment target,但是已經購買應用的用戶并沒有遇到新的deployment target,那么應用就不能在用戶的移動設備上運行。如果用戶通過iTunes (不是設備)下載了一個更新過的app,然后替代了設備上原先的版本,最后卻發(fā)現(xiàn)新版本不能在設備上運行,這確實是個問題。(1) 當你決定提高現(xiàn)有app的deployment target時,要在新版本的版本注釋中進行說明。如果你提前告知用戶,那么至少有一點,你已經盡力阻止問題的發(fā)生了。(2) 對于一款新app,我經常會把deployment target設置為最近發(fā)布的系統(tǒng)版 本。因為新iOS版本發(fā)布后,滲透率的增長速度是令人難以置信的。很多人認為提高deployment target會失去大部分市場,這個說法并不準確,比如iOS 6, iOS 6發(fā)布后一個月,超過60%的設備已經進行了更新 。但對Android而言,就是另外一回事了, Android用戶并不會像iOS用戶那樣熱衷于更新操作系統(tǒng)版本 。 【以上簡而言之,最好從項目設計時,就決定是否考慮兼容低版本用戶,支持的話,寫代碼時使用ios新特性時最好做一下判斷,if是老版本if是新版本】在最新的WWDC2014上,公布的數(shù)字顯示,iOS7的市場占有率已經為87%2. Assets(資源包)Step 1: Icons(圖標)Icon是App中不可分割的一部分,你要確保icon尺寸不會出現(xiàn)差錯。iTunes Artwork: 1024px x 1024px (required)iPad/iPad Mini: 72px x 72px and 114px x 114px (required) iPhone/iPod Touch: 57px x 57px and 114px x 114px (required) 120px x 120px(required) for iPhone5/iPhone5c/iPhone5sSearch Icon: 29px x 29px and 58px x 58px (optional) Settings Application: 50px x 50px and 100px x 100px (optional) Step 2: 屏幕截圖屏幕截圖的作用不言而喻,你可以為每個app上傳5張截圖,雖然至少需要上傳一張,可能很少有人會只上傳一張圖片。另外,你還需要分別為 iPhone/iPod Touch和iPad/iPad Mini準備不同的屏幕截圖。這也是不小的工作量,但卻能展示應用的另一面。Shiny Development開發(fā)的一款售價6.99美元的Mac軟件 Status Magic可以為你節(jié)省不少時間。Status Magic可以幫你把狀態(tài)欄放在截圖的正確位置。 屏幕截圖和icon是應用給用戶的第一感覺,直接關系到用戶會不會購買。不過,你所上傳的屏幕截圖也不一定非得是實際的截圖,看看 Where’s My Water? 截圖可以通過使用此策略,更具吸引力和說服力。當我們連上調試機以后。可以利用Xcode中Organizer中的New Screenshot輕松的截出標準大小的圖片。Step 3: 元數(shù)據(jù) 在提交應用之前,要管理好app的元數(shù)據(jù),包括1應用名稱、2版本號、3主要類別,4簡潔的描述,5關鍵詞,6.支持URL。如果你需要更新應用,你還要提供新增加的版本內容。 如果你的應用需要注冊【打開APP需要登錄,比如飛信】,你還得向蘋果提供一個測試賬戶或者demo賬戶,這樣審核人員就能很快進入app,而不用再注冊賬號。3. 提交準備Xcode 4以后,開發(fā)者提交應用的過程就簡單多了,可以直接使用Xcode進行提交。首先在 iTunes Connect中創(chuàng)建app,訪問iTunes Connect,使用你的iOS開發(fā)者賬號登陸,點擊右邊的“Manage Your Apps”,點擊左上角的“Add New App”,選擇“iOS App”,然后完成表格。
系統(tǒng)宏匯集
__FILE__
當前文件所在目錄
__DATE__
“替代文字”是一個含有編譯日期的字符串字面值,日期格式為“mm dd yyyy”(例如:“Mar 19 2006”)。如果日期小于10日,就在日的前面放一個空格符。NSLog(@"_DATE_=%s",__DATE__);
__FUNCTION__
當前函數(shù)名稱
__LINE__
當前語句在源文件中的行數(shù)
__TIME__
此字符串字面值包含編譯時間,格式為“hh:mm:ss”(范例:“08:00:59”)。
__STDC__
整數(shù)常量1,表示此編譯器遵循ISOC標準。
__STDC_VERSION__
如何實現(xiàn)復合C89整部1,則這個宏的值為19940SL;如果實現(xiàn)符合C99,則這個宏的值為199901L;否則數(shù)值是未定義
__STDC_EOBTED__
(C99)實現(xiàn)為宿主實現(xiàn)時為1,實現(xiàn)為獨立實現(xiàn)為0
__STDC_IEC_559__
(C99)浮點數(shù)實現(xiàn)復合IBC 60559標準時定義為1,否者數(shù)值是未定義
__STDC_IEC_559_COMPLEX__
(C99)復數(shù)運算實現(xiàn)復合IBC 60559標準時定義為1,否者數(shù)值是未定義
__STDC_ISO_10646__
(C99)定義為長整型常量,yyyymmL表示wchar_t值復合ISO 10646標準及其指定年月的修訂補充,否則數(shù)值未定義
就是 代碼的例子。比如說你有不會用的控件,從網(wǎng)上下載這個控件的demo 照著敲兩遍,在理解一下它的意思,就會了。
無法在安卓設備上輸入ios代碼,安卓系統(tǒng)不支持iOS系統(tǒng)的代碼。
因ios系統(tǒng)和安卓系統(tǒng)是兩個獨立的系統(tǒng),兩者之間的數(shù)據(jù)和代碼是獨立計算并且不能夠互通。
若安卓使用模擬器運行使用iOS系統(tǒng)編譯的代碼,遇到任何系統(tǒng)問題,包括文件丟失、隱私泄露,蘋果官方及安卓官方是不予處理的。
擴展資料:
安卓系統(tǒng)和iOS系統(tǒng)之間數(shù)據(jù)與代碼不互通原理
1、Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng)。主要使用于移動設備,如智能手機和平板電腦,由Google公司和開放手機聯(lián)盟領導及開發(fā)。
2、顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應用的日益豐富,一個嶄新的平臺也將很快走向成熟。
3、Cisco的網(wǎng)際操作系統(tǒng)(iOS)是一個為網(wǎng)際互連優(yōu)化的操作系統(tǒng)--類似一個局域操作系統(tǒng)(NOS)。
4、它是一個與硬件分離的軟件體系結構,隨網(wǎng)絡技術的不斷發(fā)展,可動態(tài)地升級以適應不斷變化的技術(硬件和軟件)。開放性為不開放源代碼,所以,在安卓設備上輸入ios代碼。
參考資料來源:百度百科——iOS開發(fā)范例代碼大全
參考資料來源:百度百科——iOS
參考資料來源:百度百科——Android
網(wǎng)頁標題:ios開發(fā)范例,ios開發(fā)范例實戰(zhàn)寶典 進階 百度云
轉載源于:http://chinadenli.net/article33/dsgdgss.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計、、全網(wǎng)營銷推廣、小程序開發(fā)、網(wǎng)站建設、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)