AudioSession/AudioCaptureSession的分析與使用

來源:互聯網
上載者:User

標籤:加工   avs   .net   取圖   方便   設定   cti   本地   ios   

這個是AudioSession的結構圖:


前一個部分已經介紹了AVFoundation對音頻錄製、播放的一種方法,以下再介紹第二種:

AVCaptureSession

用這個類的長處在什麼地方呢?

(1)能夠方面的對輸入源進行控制:方便錄製音頻視頻。抓取圖片。

(2)採集到資料來源方便二次加工。比方音頻變聲、加背景音樂。視頻加入濾鏡特效。

(3)定製編解碼方法,儘可能採用IOS支援的硬編硬解。

比方7.0之前的AAC MPEG-4

當然8.0之後都支援H264的硬編解碼。

所以假設想做一些複雜點的音視頻APP,這個類是經經常使用到也是很重要的。

先來看看AVCaptureSession的總體結構:

我們用這個結構能夠做哪些事情呢?(1)錄製音頻、視頻、音頻+視頻(2)錄製過程中錄製介面展示(3)靜態圖片抓取(4)中介層截獲音視頻資料流,實現音頻特效,視頻特效。

由於這裡我們拿到的是資料流。所以要想進行本機存放區還須要用到一個類AVAsset。

看看我們究竟怎麼用這個東東:

以下這個圖描寫敘述了AVCaptureSession使用的基本流程

(1) 執行個體化AVCaptureSession(橙色部分)將輸入輸出源綁定到AVCaptureSession上。

輸入源設定為mic:

        AVCaptureDevice *mic = [AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeAudio];

        AVCaptureDeviceInput *audioinput = [AVCaptureDeviceInputdeviceInputWithDevice:mic error:nil];

輸出源設定為AVCaptureAudioDataOutput:

(2) 執行個體化紫色部分

紫色部拿到錄音資料怎樣寫到本地呢?這個時候就須要執行個體化AVAsset:

_AudioWriteInput = [[AVAssetWriterInputalloc]initWithMediaType:AVMediaTypeAudiooutputSettings:setting];

    參數設定:

    NSDictionary *setting = [NSDictionarydictionaryWithObjectsAndKeys:

                            [ NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,

                            [ NSNumber numberWithInt: _AudioChannels], AVNumberOfChannelsKey,

                            [ NSNumber numberWithFloat: _Audiosamplerate], AVSampleRateKey,

                            [ NSNumber numberWithInt: 64000 ], AVEncoderBitRateKey,

                             _AudioChannelLayoutData,AVChannelLayoutKey,

    nil];

音頻相關參數設定參考還有一篇部落格:

音頻格式具體解釋:WAV

(3)  啟動整個音頻管道,開始進行錄音

(4)  音頻回調方法會接收到錄製的音頻資料。將資料傳遞給AVAsset,寫入到本地檔案裡。

寫入音頻資料:

[_AudioWriteInputappendSampleBuffer:sampleBuffer];

寫入音頻時間戳記:

[_AudioWriterstartSessionAtSourceTime:startTime];

 










AudioSession/AudioCaptureSession的分析與使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.