Gstreamer/audioflingersink/APE: 使用palybin播放extrahigh,insane等级的ape音乐出现卡顿现象

本文介绍了使用Gstreamer的playbin播放extrahigh和insane等级的ape音乐时出现卡顿现象的解决方法。通过增大audioflingersink的ringbuffer配置和在audioflingersink前添加queue元素,可以有效缓解播放延迟和卡顿。具体实现包括修改源代码以增加缓冲时间和在pipeline中添加queue组件。
摘要由CSDN通过智能技术生成
解决方法:
1. 增大 audioflingersink 中对 audiotrack 中 ringbuffer 大小的配置;

diff --git a/gst/audioflingersink/gstaudioflingersink.cpp b/gst/audioflingersink/gstaudioflingersink.cpp
index 840c3f3..7ec653f 100644
--- a/gst/audioflingersink/gstaudioflingersink.cpp
+++ b/gst/audioflingersink/gstaudioflingersink.cpp
@@ -38,7 +38,7 @@
 using namespace android;
 #undef LOG_TAG
 #define LOG_TAG "GstAudioFlingerSink"
-#define DEFAULT_BUFFER_TIME (100 * GST_MSECOND)
+#define DEFAULT_BUFFER_TIME (400 * GST_MSECOND)
 #define MIN_CORRECTION     (50*GST_MSECOND)
 #define DEFAULT_VOLUME 1.0
 #define DEFAULT_MUTE FALSE

2. 修改 playsink 的 pipeline,在 audioflingersink 之前添加 queue ,或者将 audioconvert 之前的 queue 转移到 audioflinger 之前。

diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
index 839cde1..cdde376 100644
--- a/gst/playback/gstplaysink.c
+++ b/gst/playback/gstplaysink.c
@@ -2726,7 +2726,7 @@ gen_audio_chain (GstPlaySink * playsink, gboolean raw)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值