GStreamer动态更改管道的filesrc位置 - 没有声音

时间:2012-05-01 13:30:46

标签: java audio streaming gstreamer

我目前正在开展涉及GStreamer音频流的大学项目。 我已成功设法在客户端/服务器和TCP之间进行流式传输。

我的下一个任务是动态更改用户输入的音频流。 我尝试了以下方法:

    pp.setState(State.PAUSED);

    pp.setState(State.READY);

    pp.unlink(src);

    source = ElementFactory.make("filesrc", "src");

    pp.link(source);

    source.set("location", fpath);

    pp.setState(State.PLAYING);

fpath是音频文件的位置。收到用户输入后,状态将设置为PAUSE,源将取消链接并添加新源。州设置为播放。

我在客户端使用了GST_DEBUG并且没有错误,缓冲区被发送到客户端但没有声音。

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:1)

您无需取消关联并添加新来源。只需直接进入READY(无需进入PAUSED,然后进入READY,这将隐式发生),设置一个新位置并返回播放。

答案 1 :(得分:1)

您需要syncStateWithParent();

我将它用于不同目的,但这可以扩展到您的财产变更申请Gstreamer: Pausing/resuming video in RTP streams