S60 3rd Edition
因為有了基於硬體編碼(DSP)的DevSound,手機裝置可以支援下列編碼格式的流媒體播放。所有的S60第三版手機都支援下列硬體音頻編碼的流媒體播放:
FourCC Type Description
" P16" (encoder+decoder) Uncompressed PCM 16-bit
" AMR" (encoder+decoder) AMR Narrow Band
Additionally, most Nseries and some Eseries devices support also the following:
"G711" (encoder+decoder) G.711
"G729" (encoder+decoder) G.729
"ILBC" (encoder+decoder) iLBC (internet Low Bitrate Codec)
" MP3" (decoder only) MPEG-1 Audio Layer 3 (MP3)
" AWB" (decoder only) AMR Wide Band
" AAC" (decoder only) Adv. Audio Coding (AAC)
在初始化音頻流時我們使用一個fourCC碼(TFourCC)來指定解碼格式,例如在使用CMdaAudioInputStream時,當流格式成功開啟後可以在MaiscOpenComplete進行如下操作:
void CMyAudioStreamer::MaiscOpenComplete( TInt aError )
{
if ( aError == KErrNone )
{
// Set the data type (encoding)
TRAPD(error, iInputStream->SetDataTypeL( TFourCC('G', '7', '1', '1')) );
大部分編碼在初始化時都定義了預設配置,不需要額外操作。
但某些編碼格式支援不同的解碼模式,比如位元速率或其他特性。對一個硬體編碼來說,這些配置可以通過一個特定編碼的自訂介面類來完成。我們可以從CMdaAudioXXXStream或CMMFDevSound的CustomInterface()方法擷取一個該類執行個體的指標。這個指標被強制轉換為特定編碼的介面類型。
不過這些依賴硬體的介面無法作為S60 SDK的一部分被支援。如果項目中需要自訂配置的編碼。開發人員可以通過Nokia S60 API夥伴程式來使用這些自訂的介面。