程序运行中动态修改filesink.location来修改文件保存位置会提示 Changing the `location’ property on filesink when a file is open is not supported. 错误,需要将filesink的状态设置为NULL,然后才能修改,例子:
1 2 3 4 5 | save = pipeline.get_by_name('save') save.set_state(gst.STATE_NULL) i+=1 save.set_property('location','save'+str(i)+'.wav') save.set_state(gst.STATE_PAUSED) |
参考:http://comments.gmane.org/gmane.comp.video.gstreamer.devel/30074
对了,这样修改就像参考里面说的,由于是直接将wav文件截断的,第二个文件没有格式信息,会无法播放。如果想生成的多个wav文件都能正常播放需要将 wavenc 也设置为 gst.STATE_NULL 一次。