一般而言,在进行音频渲染时。内部渲染器会有一个缓冲区,在缓冲区充足时,会产生回调给外部,让外部输入数据。
若在内部缓冲区满的情况下,刚输入的数据,会在一定时长后才会渲染,这个时长是根据缓冲区大小和输入音频数据的格式确定。
为了音画同步,我们需要知道缓冲区大小。
一般情况下,在外接设备时(蓝牙耳机,音响等),硬件从内部缓冲区获取到音频数据时,需要一定的时间才会传入到相应外接设备中。
为了音画同步,因此我们也需要这个时长。
一般而言,在进行音频渲染时。内部渲染器会有一个缓冲区,在缓冲区充足时,会产生回调给外部,让外部输入数据。
若在内部缓冲区满的情况下,刚输入的数据,会在一定时长后才会渲染,这个时长是根据缓冲区大小和输入音频数据的格式确定。
为了音画同步,我们需要知道缓冲区大小。
一般情况下,在外接设备时(蓝牙耳机,音响等),硬件从内部缓冲区获取到音频数据时,需要一定的时间才会传入到相应外接设备中。
为了音画同步,因此我们也需要这个时长。
1 回答869 阅读✓ 已解决
1 回答1.2k 阅读
1 回答1k 阅读
1 回答955 阅读
1 回答921 阅读
1 回答826 阅读
1 回答776 阅读
1 回答596 阅读
2 回答729 阅读✓ 已解决
1 回答722 阅读
1 回答1.5k 阅读
1 回答735 阅读✓ 已解决
可以通过这个MyOnWriteData设置buffer长度,参考链接:
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/media/audio/using-ohaudio-for-playback.md
非低时延不设置的话是93ms的大小 低时延不设置是5ms大小
普通通路有个设buffer为20ms的优化,参考链接:
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-audio-kit/\_o\_h\_audio.md\#oh\_audiostreambuilder\_setframesizeincallback
获取延时大小的接口参考链接:GetAudioTime
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-audio-kit/\_o\_h\_audio.md