我目前正在从事涉及 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,取消链接源并添加新源。状态设置为 PLAYING。
我在客户端使用了 GST_DEBUG 并且没有错误,缓冲区被发送到客户端但没有声音。
如有任何建议,我们将不胜感激。
最佳答案
您无需取消链接并添加新来源。直接进入 READY(无需先进入 PAUSED 再进入 READY,这会隐式发生),设置一个新位置并返回播放。
关于java - GStreamer 动态更改管道的 filesrc 位置 - 没有声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10398383/