gstreamer: 反向播放音频文件
我想用 GStreamer 播放不同播放速度的音频文件。这个功能已经可以正常使用了。不过,与 Python GStreamer 参考文档 中的描述不同,负速率并不能让音频文件倒放。
有没有人知道我该怎么实现这个目标?这是不是跟 filesrc 或 decodebin2 无法缓存文件以便倒放有关?还是说这只是个bug呢?
这是我代码的一个(非常)简化版本:
import os
import pygst
pygst.require('0.10')
import gst
import gtk
gst_command = ('filesrc location=%s ! decodebin2 ! autoaudiosink') % \
'/mnt/audio/test.wav'
pipeline = gst.parse_launch(gst_command)
pipeline.set_state(gst.STATE_PLAYING)
pipeline.get_state()
position = 10 * gst.SECOND
rate = -1.0
pipeline.seek(rate, gst.FORMAT_TIME, \
gst.SEEK_FLAG_FLUSH | gst.SEEK_FLAG_ACCURATE, \
gst.SEEK_TYPE_SET, position, \
gst.SEEK_TYPE_NONE, -1)
gtk.main()
我对其他编程语言也有了解,所以请随意用你喜欢的语言回答... :)
1 个回答
0
看起来调试输出显示了:
0:00:00.447509530 6848 0x10d6e30 DEBUG wavparse gstwavparse.c:1020:gst_wavparse_perform_seek:<wavparse0> negative playback rates are not supported yet.
所以你应该提交一个bug报告,请求实现这个功能,或者自己去实现它。