WEB开发网
开发学院手机开发Symbian 开发 Symbian中音频API的运用 阅读

Symbian中音频API的运用

 2010-07-22 01:41:00 来源:WEB开发网   
核心提示:{// iAudioPlayer->Duration()可以得到歌曲的总时间,值和aDuration相等iAudioPlayer->SetVolume(iAudioPlayer->MaxVolume() / 3);iAudioPlayer->Play(); /* 播放音频数据,Symbian中音

{

// iAudioPlayer->Duration()可以得到歌曲的总时间,值和aDuration相等

iAudioPlayer->SetVolume(iAudioPlayer->MaxVolume() / 3);

iAudioPlayer->Play(); /* 播放音频数据。此方法为异步方法,载入完成会调用MMdaAudioPlayerCallback::MapcPlayComplete(TInt aError)方法。注意有些方法需要在正在播放音频数据时调用才有意义,比如 iAudioPlayer->GetPosition(TTimeIntervalMicroSeconds &)和iAudioPlayer->Pause() 等等 */

}

else

{

//iAudioPlayer->CancelRegisterAudioResourceNotification();

iAudioPlayer->Stop();

}

}

// 播放完成

void CMyObserver::MapcPlayComplete(TInt aError)

{

if (aError == KErrNone)

{

iAudioPlayer->Close(); /* Closes the current audio clip, so can allow another clip to be opened). */

iAudioPlayer->OpenFileL(_L("c:\data\Fur-Elise.mid")); /* 打开另一个音频文件并重复播放流程 */

}

else

{

iAudioPlayer->Stop();

}

}

三. CMdaAudioOutputStream

音频流播放类允许程序播放音频时,不必拥有全部音频的数据。音频数据以递增方式存取和缓冲,并尽量保证平滑和连续播放。

这个类的工作原理就是将PCM数据传递给底层音乐设备并通知其开始播放。

如果我们的程序中使用了第三方解码库,也需要使用这个类来将解码后的音频数据传递给底层音乐设备。

流播放器支持的唯一一种音频格式是16位脉冲编码调制(pulse code modulation,PCM)。通常PCM数据包含一个44字节的头部(包含音频数据的有效载荷信息)。由于流播放器只接受16位PCM,因此它并不需要这个头部信息。

CMdaAudioOutputStream::SetAudioPropertiesL(TInt aSampleRate, TInt aChannels)方法可以设置取样率和通道数。

而音量等附加信息可以通过传递TMdaAudioDataSettings(TMdaAudioDataSettings 是TMdaPackage类的子类)对象给Open()方法来控制。

CMdaAudioOutputStream * iOutputStream =

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Symbian 音频 API

编辑录入:coldstar [复制链接] [打 印]
赞助商链接