AVFoundation上實(shí)現(xiàn)語(yǔ)音播放暫停等等功能;
實(shí)現(xiàn)的demo 鏈接: https://github.com/helinyu/AKSpeech
基本上封裝了一下內(nèi)容,代碼情況鏈接藤肢;
可以通過(guò)pod來(lái)進(jìn)行管理下載:
封裝的鏈接
基礎(chǔ)知識(shí)可看:
http://www.reibang.com/p/c55b94b467b8
1、model
model上的基本屬性
model上設(shè)置一些默認(rèn)的屬性透硝,這里的默認(rèn)的語(yǔ)言是普通話芦昔,同時(shí)支持粵語(yǔ)旺垒;
支持的語(yǔ)言列表
看詳細(xì)的講解:https://tools.ietf.org/html/bcp47
mgr
播放之前語(yǔ)言的配置和檢查
將delegate的方式轉(zhuǎn)化為block的方式
typedef void(^AKSpeechTotalDelegateBlock)(AVSpeechSynthesizer *synthesizer, AVSpeechUtterance *utterance, NSRange characterRange, AKASpeechDelegateType type);
Summary:
1、有關(guān)語(yǔ)音的播放是在AVFaudio上的內(nèi)容的AVSpeech這個(gè)類實(shí)現(xiàn)的;
2、主要講里面的幾個(gè)類,傳遞的屬性甸饱,直接整合為一個(gè)model,不用過(guò)多的分類 仑濒,外面使用是透明的叹话,傳入?yún)?shù)就可以了
3、對(duì)傳入的參數(shù)進(jìn)行必要的檢查是否在合理的范圍內(nèi)
4墩瞳、將delegate的方式轉(zhuǎn)化為block的方式 驼壶,這樣一起整體調(diào)用,將有關(guān)的block的添加上一個(gè)type的屬性進(jìn)行判斷是那個(gè)代理