gpt4 book ai didi

iphone - 如何在OpenAL中计量/平均峰值功率水平?

转载 作者:行者123 更新时间:2023-12-02 23:00:39 26 4
gpt4 key购买 nike

我正在使用Finch声音引擎从AVAudioPlayer切换到OpenAL。我需要进行计量,即获取平均峰值水平。 Finch声音引擎不提供此功能,我对OpenAL完全陌生。我怎样才能做到这一点?任何例子将不胜感激。

最佳答案

我假设您正在寻找AVAudioPlayer的peakPowerForChannel:方法的直接替代品。不幸的是,没有。您必须自己动手。

OpenAL“声音”是“缓冲区”(您的样本数据,已加载到内存中)和“源”的组合,“源”表示要应用于样本数据的属性。

OpenAL回放的一种简单方法是将整个文件加载到内存中,然后一次调用就可以播放整个文件。但是,您可以使用NSInputStream从文件中将一部分PCM样本数据读入OpenAL缓冲区中,使用alBufferData()使用您自己的函数来计算峰值功率,使用源播放该块,然后重复进行,直到EOF 。

我知道您打算使用Finch,但是您应该给AudioQueues一个真正的近距离监视(如果计量对您来说是一项关键功能)。针对此类应用程序进行了更好的设计。特别是,kAudioQueueProperty_CurrentLevelMeterDB属性将为您提供峰值RMS(mPeakPower)或平均RMS级别(mAveragePower),您可以随时阅读。

祝您好运,编码愉快!

一些资源可能会有所帮助:

  • http://kcat.strangesoft.net/openal-tutorial.html
  • http://connect.creativelabs.com/openal/Documentation/OpenAL_Programmers_Guide.pdf
  • http://www.hydrogenaudio.org/forums/index.php?showtopic=78578
  • http://developer.apple.com/mac/library/documentation/MusicAudio/Reference/AudioQueueReference/Reference/reference.html
  • 关于iphone - 如何在OpenAL中计量/平均峰值功率水平?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2567865/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com