版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第8章
多媒體本章內容概要了解視頻、音頻的基本知識與常用術語。掌握播放音頻的方法,以及這些方法的優(yōu)缺點與適用范圍。掌握錄音以及控制音樂播放的方法。掌握視頻的播放與控制方法。掌握如何播放系統媒體庫中的音樂與視頻。掌握使用相機進行拍照與攝像的要點,以及如何將圖像與視頻保存到媒體庫。iOS應用程序開發(fā)方法與實踐28.1音頻與視頻基礎容器與編碼音頻編碼格式介紹采樣率與比特率音頻工具afconvert與afinfoiOS應用程序開發(fā)方法與實踐38.1.1容器與編碼文件又稱作容器,包含視頻數據、音頻數據與其他信息(腳本、版權信息、歌詞、字幕等等)。文件中的視頻數據與音頻數據可以采用不同的編碼(算法)保存。播放媒體文件時,需要對視頻數據與音頻數據進行對應的解碼。iOS應用程序開發(fā)方法與實踐48.1.2音頻編碼格式介紹常用的音頻編碼格式:AAC、HE-AAC、ALAC、IMA4、AMR、iLBC、LPCM、G.711、MP3等。未壓縮的LPCM原始音頻數據與壓縮的IMA4音頻數據,可以同時硬解碼播放。對于MP3、AAC、ALAC音頻數據,同一時間只可以對其中一個音頻數據進行硬解碼。iOS應用程序開發(fā)方法與實踐58.1.3采樣率與比特率聲音是具有能量的波,它是連續(xù)的模擬信號。需要以數字形式保存和傳輸模擬信號中包含的數據,則必須進行模數轉換。進行模數轉換需要進行采樣、量化與編碼三個步驟。采樣:在時間上將連續(xù)的模擬信號離散化。量化:用有限個幅度值近似原有的連續(xù)變化的幅度值,從而把模擬信號的連續(xù)幅度變?yōu)橛邢迶盗康挠幸欢ㄩg隔的離散值。編碼:按照一定的規(guī)約,將量化后的離散值用二進制數表示出來。iOS應用程序開發(fā)方法與實踐68.1.3采樣率與比特率iOS應用程序開發(fā)方法與實踐78.1.3采樣率與比特率采樣率:每秒鐘從連續(xù)信號中提取并組成離散信號的采樣個數。單位:赫茲(Hz)。對于CD音頻來說,其采樣率為44100Hz。采樣周期(采樣時間):采樣率的倒數,它是每次采樣之間的時間間隔。比特率(位速率):單位時間內所使用的二進制位數。單位:位每秒(bps)。比特率越高,越貼近真實數據,文件越大;比特率越低,失真約大,文件越小。iOS應用程序開發(fā)方法與實踐88.1.4音頻工具afconvert與afinfoCAF(CoreAudioFile)格式的音頻文件在iOS開發(fā)中比較常用。CAF文件能夠包含iPhone支持的所有編碼方式壓縮的數據。afconvert命令可以將常見的WAV、MP3、AAC、M4A等音頻文件轉換為CAF格式。afinfo命令可以查看音頻文件信息,如容器格式、音頻數據編碼格式、比特率、采樣率等等。iOS應用程序開發(fā)方法與實踐98.2音頻iOSSDK提供了多種播放音頻的方式:SystemAudioServicesAVAudioPlayerMPMusicPlayerControllerOpenALiOS應用程序開發(fā)方法與實踐108.2音頻使用SystemAudioServices:播放方式最簡單。能夠實現震動效果。音頻數據必須來自于程序包內的文件,或是來自于服務器的音頻流,不能播放其他位置的音頻。音頻長度不能超過30秒。音頻的容器格式只能是CAF、AIF或者WAV文件,編碼格式只能為LPCM或者IMA4。不能對音頻的播放進行控制,即只能播放,不能暫停、快進、回退等。
iOS應用程序開發(fā)方法與實踐118.2音頻使用AudioPlayer(AVAudioPlayer):播放方式相對簡單。可以播放更長的音頻。允許對播放進行各種控制(暫停、快進回退、調整音量、指定播放位置、循環(huán)次數等等)。允許同時播放多個音頻。支持的格式豐富(MP3、AAC、ALAC、AIFF、WAV)。能夠處理中斷(例如播放音樂時有電話呼入)。音頻數據必須來自于程序包內的文件,或是來自于服務器的音頻流,不能播放其他位置的音頻。iOS應用程序開發(fā)方法與實踐128.2音頻使用MediaPlayer框架:播放系統音樂庫中的音樂。使用AudioRecorder:可以錄制音頻。使用OpenAL:可以真實表現3D場景音效,并控制立體聲的方位。請根據應用程序的具體場景和需要進行選取。iOS應用程序開發(fā)方法與實踐138.2.1使用SystemAudioServices播放聲音使用SystemAudioServices播放聲音的主要步驟:添加AudioToolbox框架,并在必要的代碼處引用其頭文件。根據音頻文件URL,生成系統聲音ID。根據ID播放聲音。釋放系統聲音ID。參見教材“案例:播放簡短音效與實現震動”。iOS應用程序開發(fā)方法與實踐148.2.3使用AudioPlayer播放與控制聲音使用AVAudioPlayer播放聲音的主要步驟:添加AVFoundation框架,并在必要的代碼處引用其頭文件。初始化新的AVAudioPlayer對象,指定音頻文件的URL或者數據。設置委托,需要實現AVAudioPlayerDelegate協議。AVAudioPlayer對象會在播放完成時、解碼出錯時、以及中斷開始與結束時向委托對象發(fā)出通知。獲取音頻信息,并控制音頻播放。釋放AVAudioPlayer對象。參見教材“案例:播放較長的聲音”。iOS應用程序開發(fā)方法與實踐158.2.5使用AudioRecorder錄制聲音使用AVAudioRecorder錄制音頻的主要步驟:添加AVFoundation框架與CoreAudio框架,并引用其頭文件。創(chuàng)建一個字典,定義錄音參數,例如采樣率、通道數以及編碼格式等。初始化AVAudioRecorder對象,指定生成的文件URL以及錄音參數字典。設置委托,需要實現AVAudioRecorderDelegate協議。AVAudioRecorder對象會在錄制完成時、編碼出錯時、以及中斷開始與結束時向委托對象發(fā)出通知??刂其浺暨^程,如準備錄音、開始或恢復錄音、暫停、停止錄音等;或是查詢錄音信息,如是否正在錄制、錄制時間等。釋放AVAudioRecorder對象。參見教材“案例:實現帶錄音功能的音樂播放機”。iOS應用程序開發(fā)方法與實踐168.2.7使用MusicPlayerController播放媒體庫音樂MediaPlayer框架允許應用程序訪問媒體庫。iOS應用程序開發(fā)方法與實踐178.2.7MediaPlayer框架中重要的類MPMediaLibrary:表示設備媒體庫,包含所有媒體項的狀態(tài)信息,可以從中獲取和查詢媒體項與播放列表。MPMediaEntity:表示設備媒體庫中的一個實體,保存了各種媒體信息,例如藝術家名稱、專輯名稱、歌曲名稱、音軌號等等。MPMediaItem與MPMediaItemCollection是該類的子類。MPMediaItem:表示媒體庫中的某個媒體項(例如音樂、視頻),它具有唯一標識。MPMediaItemCollection:表示若干媒體項的有序集合。iOS應用程序開發(fā)方法與實踐188.2.7MediaPlayer框架中重要的類MPMediaPlaylist:表示媒體庫中的一個播放列表。MPMediaPlaylist類繼承自MPMediaItemCollection類。MPMediaQuery:用于從媒體庫中查詢媒體項。該對象包含了查詢結果分組方式,以及用于查詢的若干條件謂詞。滿足條件的媒體項會保存在MPMediaItemCollection對象中。MPMusicPlayerController:用于播放媒體項隊列,可以對播放進行控制。該類不是視圖控制器類。MPMediaPickerController:一個視圖控制器類,其視圖就是iOS中的音樂程序的歌曲標簽頁。該類繼承自UIViewController類。iOS應用程序開發(fā)方法與實踐198.2.7使用MediaPlayer框架播放媒體庫音樂使用MediaPlayer框架訪問媒體庫的主要步驟:創(chuàng)建MPMediaPickerController視圖控制器,并設置選取類型。獲取MPMusicPlayerController對象,可以是系統全局媒體播放器或者應用程序媒體播放器。創(chuàng)建一個實現MPMediaPickerControllerDelegate協議的委托類。委托類的方法會在用戶完成選擇時或者取消選擇時調用。設置MPMediaPickerController視圖控制器的委托對象。將MPMediaPickerController視圖控制器以模式方式顯示。釋放MPMediaPickerController視圖控制器。參見教材“案例:播放媒體庫音樂”。iOS應用程序開發(fā)方法與實踐208.3視頻使用MoviePlayerController播放視頻使用MoviePlayer視圖控制器播放視頻使用相機進行拍照與攝像iOS應用程序開發(fā)方法與實踐218.3.1使用MoviePlayerController播放視頻MPMoviePlayerController對象能夠播放存放在本地與網絡上的視頻與音頻文件。包含一個用于在其中播放視頻的視圖,視頻視圖中提供了播放控制欄,能夠對視頻進行暫停、快進、回退、停止、全屏播放等操作。雖然MPMoviePlayerController類的名字中含有Controller,但它不是視圖控制器,而只是一個用于控制媒體播放的類。iOS應用程序開發(fā)方法與實踐228.3.1使用MoviePlayerController播放視頻使用MPMoviePlayerController類播放視頻的主要步驟:添加MediaPlayer框架,并在必要的代碼處引用其頭文件。初始化MPMoviePlayerController對象,指定視頻文件的URL。在通知中心中注冊通知,用于響應特定的事件,如媒體播放完畢、進入全屏播放模式、播放的媒體發(fā)生更改時等。設置視圖的尺寸,并將其視頻視圖添加到視圖樹中。獲取視頻的信息,并對視頻進行播放與控制。釋放MPMoviePlayerController對象。參見教材“案例:實現視頻的播放”。iOS應用程序開發(fā)方法與實踐238.3.3使用MoviePlayer視圖控制器播放視頻MPMoviePlayerViewController是一個視圖控制器類,內部管理著一個MPMoviePlayerController類的對象,并簡單地以全屏方式播放視頻內容。使用MPMoviePlayerViewController播放視頻的主要步驟:添加MediaPlayer框架并引用頭文件。初始化MPMoviePlayerViewController類的對象,并指定視頻文件的URL。將其添加到其他容器視圖控制器中,或者以模式方式顯示。釋放MPMoviePlayerViewController對象。參見教材“案例:使用MPMoviePlayerViewController播放視頻”。iOS應用程序開發(fā)方法與實踐248.3.5使用相機進行拍照與攝像圖像選取控制器UIImagePickerController類可以使用iOS設備的相機進行拍照或攝像,或是獲取圖像庫中的圖片。UIImagePickerController類繼承自UINavigationController類,因此它是一個導航欄控制器。iOS應用程序開發(fā)方法與實踐258.3.5使用相機進行拍照與攝像使用圖像選取控制器進行拍照、攝像與瀏覽媒體的主要步驟:檢查媒體來源模式是否可用。+(BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年寧波房產轉讓合同范本
- 2024個人承包合同書范本
- 2024年《高端設備采購與技術轉讓合同》
- 2024年市場營銷與推廣合作合同
- 2024年高中語文第三單元9勸學同步練習新人教版必修3
- 2024年城市軌道交通建設與維護管理合同
- 2024年定制麻石欄桿安裝協議
- 2024年工程質量驗收合同
- 2024年專用:虛擬現實技術在軍事訓練中的應用服務合同
- 2024年城市建筑設計委托合同
- 現代物流技術的應用與創(chuàng)新
- 海南省??谑兄攸c中學2023-2024學年七年級上學期期中數學試卷(含答案)
- 眼角膜炎的治療藥物
- 中國銀行交易流水明細清單
- 如何提高數學課堂的教學效率
- 教育輿情報告2023
- 重大事故隱患專項排查檢查表
- 學美術的職業(yè)生涯規(guī)劃與管理
- jgj39-2016《托兒所、幼兒園建筑設計規(guī)范》(2019年版)
- 軟件定義存儲在數據中心的應用
- 廣東省揭陽市榕城區(qū)2023-2024學年八年級上學期期中考試地理試題
評論
0/150
提交評論