freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android平臺(tái)的音頻編解碼技術(shù)研究與應(yīng)用-在線瀏覽

2025-03-07 14:08本頁(yè)面
  

【正文】 力、情色方面的程序和游戲如何控制正是留給Android難題之一。從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺(tái)手機(jī)將無(wú)縫結(jié)合這些優(yōu)秀的Google服務(wù)。由于OpenCore高度的模塊化,采用OpenCore作為多媒體框架有利于加速將產(chǎn)品推向市場(chǎng)、減小操作成本和資源投入、擴(kuò)展編解碼器、增強(qiáng)用戶體驗(yàn)等。目前OpenCore已經(jīng)應(yīng)用于170多款移動(dòng)終端中。需要說(shuō)明的是,OpenCore遵循OopenMax的接口規(guī)范,本質(zhì)上是OpenMax的一種實(shí)現(xiàn)。所有Android平臺(tái)的音頻,視頻的采集以及播放等操作都是通過(guò)它來(lái)實(shí)現(xiàn)的。程序員可以使用Open Core方便快捷地開(kāi)發(fā)出想要的多媒體應(yīng)用程序。Open Core多媒體框架有一套通用可擴(kuò)展的接口針對(duì)第三方的多媒體遍解碼器,輸入/出設(shè)備等等 具體功能如下:l 多媒體文件播放、下載,包括:3GPP,MPEGAAC和MP3containers.l 流媒體的下載、實(shí)時(shí)播放、包括:3GPP,HTTP和RTSP/RTP流。l 視頻和圖像格式:3GPP、MPEGJPEG。OpenCore是一個(gè)多媒體框架。l PVAuthor:提供媒體流記錄功能,完成各種音頻(Audio)、視頻(Video)流以及靜態(tài)圖片捕獲功能。在移動(dòng)終端中常常使用的多媒體應(yīng)用程序,例如媒體播放器、照相機(jī)、錄像機(jī)、錄音機(jī)等等。l PVMF:PacketVideo Multimeedia Framework(PV多媒體框架),在框架內(nèi)實(shí)現(xiàn)一個(gè)文件解析(parser)和組成(poser)、編解碼的NODE,也可以繼承其通用的接口,在用戶層實(shí)現(xiàn)一些NODE。l PVAuthor Engine:PVAuthor引擎。Open Core的代碼在Android代碼的External/Opencore目錄中,其子目錄及其具體功能描述如下:圖31 OpenCore框架圖l android:這里面是一個(gè)上層的庫(kù),它實(shí)現(xiàn)了一個(gè)為Android使用的音視頻采集、播放接口,及DRM數(shù)字版權(quán)管理的接口實(shí)現(xiàn)。l codecs_v2:音視頻的編解碼器,基于OpenMAX實(shí)現(xiàn)。l exterm_libs_v2:包含了Khronos的OpenMAX的頭文件。l nodes:提供一些PVMF的NODE,主要是編解碼和文件解析方面的。l pvmi:輸入輸出控制的抽象接口。l pvmon:pvmon庫(kù)文件的Android.mk文件,沒(méi)有源文件。l pvauthor:pvauthor庫(kù)文件的Android.mk文件,沒(méi)有源文件。OpenMAX是無(wú)授權(quán)費(fèi)、跨平臺(tái)的應(yīng)用程序接口API,通過(guò)媒體加速組件能夠在開(kāi)發(fā)、集成和編程環(huán)節(jié)中實(shí)現(xiàn)跨多操作系統(tǒng)和處理器硬件平臺(tái),提供全面的流媒體編解碼器和應(yīng)用程序便攜化。因此多媒體應(yīng)用程序和多媒體框架通過(guò) OpenMAX IL 可以以一種統(tǒng)一方式來(lái)使用codec和其他多媒體數(shù)據(jù)處理功能,具有了跨越軟硬件平臺(tái)的移植性。 AL向多媒體接口提供應(yīng)用冊(cè)便攜性。編解碼器供應(yīng)商必須寫(xiě)私有的或者封閉的接口集成進(jìn)移動(dòng)設(shè)備。 l OpenMAX DL(Development Layer)l OpenMAX DL 定義了一個(gè)API,它是音/視頻和圖像功能的集合。它包括音頻信號(hào)的處理功能,如FFT和filter;圖像原始處理,如顏色空間轉(zhuǎn)換和視頻原始處理,以實(shí)現(xiàn)例如MPEGMPAAC和JPEG等編解碼器的優(yōu)化。 Splitter的定義與初始化以wav的splitter為例, 。我們搜索PV_Wav_Parser類(lèi)被用到的地方可知,在PVMFWAVFFParserNode類(lèi)中有PV_Wav_Parser的一個(gè)指針成員變量。而CreatePVMFWAVFFParserNode()函數(shù)是在PVPlayerNodeRegistry::PVPlayerNodeRegistry()類(lèi)構(gòu)造函數(shù)中通過(guò)PVPlayerNodeInfo類(lèi)被注冊(cè)到Oscl_VectorPVPlayerNodeInfo, OsclMemAllocator的vector中,在這個(gè)構(gòu)造函數(shù)中,AMR,mp3等node也是同樣被注冊(cè)的。綜述一下splitter的定義與初始化過(guò)程:l 每個(gè)splitter都在fileformats目錄下有個(gè)對(duì)應(yīng)的子目錄,其下有各自的解析類(lèi)。l 播放引擎PVPlayerEngine類(lèi)中有PVPlayerNodeRegistry iPlayerNodeRegistry成員變量。PVMFStatusPVPlayerNodeRegistry::QueryRegistry(PVMFFormatTypeamp。aOutputType,Oscl_VectorPVUuid, OsclMemAllocatoramp。[8]從QueryRegistry這個(gè)函數(shù)至底向上搜索可得到,在android中splitter的匹配過(guò)程如下:(JAVA本地調(diào)用方法)類(lèi)型的數(shù)組gMethods,供java代碼中調(diào)用MultiPlayer類(lèi)的setDataSource成員函數(shù)時(shí)找到對(duì)應(yīng)的c++函數(shù):{setDataSource,(Ljava/lang/String。status_t MediaPlayer::setDataSource(const char *url)此函數(shù)通過(guò)調(diào)getMediaPlayerService()先得到當(dāng)前的MediaPlayerService,const spIMediaPlayerServiceamp。然后新建一個(gè)IMediaPlayer變量,spIMediaPlayer player(servicecreate(getpid(), this, fd, offset, length))。client, const char* url)中,調(diào)status_t MediaPlayerService::Client::setDataSource(const char *url)函數(shù),Client是MediaPlayerService的一個(gè)內(nèi)部類(lèi)。將PlayerSetDataSource的mand類(lèi)加入到PlayerDriver的mand處理隊(duì)列中,在void PlayerDriver::Run()函數(shù)中處理此mand,調(diào)用下面的handleSetDataSource函數(shù)。 aDataSource, const OsclAny* aContextData)PVMFStatus PVPlayerEngine::DoAddDataSource(PVPlayerEngineCommandamp。MediaPlayer包含了Audio和Video的播放功能,在Android的界面上,Music和Video兩個(gè)應(yīng)用程序都是調(diào)用MediaPlayer實(shí)現(xiàn)的。圖35 MediaPlayer庫(kù)結(jié)構(gòu)圖由圖35可以看出在各個(gè)庫(kù)中。 Player()來(lái)完成。Media :我們可以看出MediaPlayer類(lèi)提供了一個(gè)多媒體播放器的基本操作,播放,暫停,停止,設(shè)置音量等等。 //構(gòu)建MediaPlayer對(duì)象(PATH_TO_FILE)。 //準(zhǔn)備()。音頻數(shù)字化的標(biāo)準(zhǔn)是每個(gè)樣本16位96dB的信噪比,采用線性脈沖編碼調(diào)制PCM,每一量化步長(zhǎng)都具有相等的長(zhǎng)度。對(duì)于播放,Android支持各種各樣的音頻文件格式和編解碼。 CD格式:天籟之音 當(dāng)今世界上音質(zhì)最好的音頻格式是什么?當(dāng)然是CD了。在大多數(shù)播放軟件的“打開(kāi)文件類(lèi)型”中,都可以看到*.cda格式,這就是CD音軌了。CD光盤(pán)可以在CD唱機(jī)中播放,也能用電腦里的各種播放軟件來(lái)重放。 WAV:無(wú)損的音樂(lè)是微軟公司的一種聲音文件格式,它符合 PIFFResource Interchange File Format 文件規(guī)范,用于保存WINDOWS平臺(tái)的音頻信息資源,被WINDOWS平臺(tái)及其應(yīng)用程序所支持。 MP3:流行的風(fēng)尚MP3格式誕生于八十年代的德國(guó),所謂的MP3也就是指的是MPEG標(biāo)準(zhǔn)中的音頻部分,也就是MPEG音頻層。MPEG音頻文件的壓縮是一種有損壓縮,MPEG3音頻編碼具有10:1~12:1的高壓縮率,同時(shí)基本保持低音頻部分不失真,但是犧牲了聲音文件中12KHz到16KHz高音頻這部分的質(zhì)量來(lái)?yè)Q取文件的尺寸,相同長(zhǎng)度的音樂(lè)文件,用*.mp3格式來(lái)儲(chǔ)存,一般只有*.wav文件的1/10,而音質(zhì)要次于CD格式或WAV格式的聲音文件。直到現(xiàn)在,這種格式還是風(fēng)靡一時(shí),作為主流音頻格式的地位難以被撼動(dòng)。 MIDI:作曲家的最?lèi)?ài)經(jīng)常玩音樂(lè)的人應(yīng)該常聽(tīng)到MIDI(Musical Instrument Digital Interface)這個(gè)詞,MIDI允許數(shù)字合成器和其他設(shè)備交換數(shù)據(jù)。MID文件并不是一段錄制好的聲音,而是記錄聲音的信息,然后在告訴聲卡如何再現(xiàn)音樂(lè)的一組指令。今天,MID文件主要用于原始樂(lè)器作品,流行歌曲的業(yè)余表演,游戲音軌以及電子賀卡等。*.mid格式的最大用處是在電腦作曲領(lǐng)域。 WMA:最具實(shí)力的敵人WMA (Windows Media Audio) 格式是來(lái)自于微軟的重量級(jí)選手,后臺(tái)強(qiáng)硬,音質(zhì)要強(qiáng)于MP3格式,更遠(yuǎn)勝于RA格式,它和日本YAMAHA公司開(kāi)發(fā)的VQF格式一樣,是以減少數(shù)據(jù)流量但保持音質(zhì)的方法來(lái)達(dá)到比MP3壓縮率更高的目的,WMA的壓縮率一般都可以達(dá)到1:18左右,WMA的另一個(gè)優(yōu)點(diǎn)是內(nèi)容提供商可以通過(guò)DRM(Digital Rights Management)方案如Windows Media Rights Manager 7加入防拷貝保護(hù)。WMA這種格式在錄制時(shí)可以對(duì)音質(zhì)進(jìn)行調(diào)節(jié)。雖然現(xiàn)在網(wǎng)絡(luò)上還不是很流行,但是在微軟的大規(guī)模推廣下已經(jīng)是得到了越來(lái)越多站點(diǎn)的承認(rèn)和大力支持,在網(wǎng)絡(luò)音樂(lè)領(lǐng)域中直逼*.mp3,在網(wǎng)絡(luò)廣播方面,也正在瓜分Real打下的天下。 RealAudio流動(dòng)的旋律RealAudio主要適用于在網(wǎng)絡(luò)上的在線音樂(lè)欣賞,現(xiàn)在大多數(shù)的用戶仍然在使用56Kbps或更低速率的Modem,所以典型的回放并非最好的音質(zhì)?,F(xiàn)在real的的文件格式主要有這么幾種:有RA(RealAudio)、RM(RealMedia,RealAudio G2)、RMX(RealAudio Secured),還有更多。 ARM自適應(yīng)多速率編解碼(AMRNB,AMRWB),.3gp,.amr文件。3GPP是一個(gè)為其合作伙伴創(chuàng)建規(guī)范的電信行業(yè)機(jī)構(gòu)。AMR這格式一般對(duì)語(yǔ)音編碼很有用,但對(duì)更復(fù)雜的類(lèi)型表現(xiàn)的不夠好,比如音樂(lè)。結(jié)束錄制后可以直接得到音頻文件進(jìn)行播放。以開(kāi)源的Android為例MediaRecorder的代碼主要在以下的目錄中:JAVA程序的路徑:packages/apps/Camera/src//android/camera/JAVA Framework的路徑:frameworks/base/media/java/android/media/JAVA本地調(diào)用部分(JNI):frameworks/base/media/jni/。多媒體服務(wù)部分:frameworks/base/media/libmediaplayerservice/MediaRecorder和MeidaPlayer使用相同的服務(wù)。在聲音錄制過(guò)程中,有可能我們需要得到采集的聲音數(shù)據(jù)并進(jìn)行處理,比如降噪,合成等。而AudioRecorder恰能滿足這種要求。AudioRecorder可以有2種處理方式:(1)設(shè)置AudioRecorder的UpdateListener和NotificationPeriod(updateListener)。然后在UpdateListener中進(jìn)行處理。但實(shí)際使用過(guò)程中發(fā)現(xiàn),即使沒(méi)有進(jìn)行其他操作也會(huì)造成程序崩潰,所以不推薦使用。這方式較為麻煩,特別是需要在子線程中更新UI。兩種方式示例代碼如下:private updateListener = new () { private int x = 0。 // Fill buffer try { //(buffer)。 if (bSamples == 16) { for (int i=0。 i++) { // 16bit sample size short curSample = (buffer[2*i], buffer[2*i+1])。 } } } else { // 8bit sample size for (int i=0。 ++i) { if (buffer[i] cAmplitude) { // Check amplitude cAmplitude = buffer[i]。 //stop()。 ()。 }子線程中處理:class AudioRecordThread implements Runnable
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1