icecast 音频客户端的问题
Posted
技术标签:
【中文标题】icecast 音频客户端的问题【英文标题】:problems with an icecast audio client 【发布时间】:2014-11-25 11:35:05 【问题描述】:不确定这是否可行,我已经配置了一个 icecast 服务器和流媒体音乐,并且我想使用 Java(或 grails)创建一个网络播放器。我设法让 java 网络应用程序播放音乐 icecast 正在流式传输,使用如下:
AudioInputStream stream = Audiosystem.getAudioInputStream(new URL("http://localhost:8000/musicstation"))
再播放几行音乐后,问题是如果我关闭带有网络应用程序的标签,音乐继续播放,我必须停止应用程序才能停止播放,但是当我再次启动它并尝试再次播放,就像icecast服务器在后台继续播放歌曲一样,我的意思是,它没有停止或暂停,因此我无法实现暂停动作,因为如果我暂停,实际暂停的将是网络应用播放歌曲,但在后台icecast会继续传输歌曲,所以当我暂停后再次播放时,歌曲不会从暂停点继续播放。
使用 AudioInputStream 是实现 icecast 音频客户端的正确方法吗? 我希望我能解释一下自己。 谢谢
【问题讨论】:
【参考方案1】:Icecast 显然会继续“播放”,因为它是一个实时流媒体服务器。如果要实现暂停机制,则需要缓冲从 Icecast 获得的内容并播放缓冲区。
【讨论】:
所以如果我想创建一个类似于 spotify 的播放器,你认为 icecast 作为流媒体服务器是一个不错的选择吗?我想要的是创建一个网络播放器,用户可以在其中暂停、转发、停止等用户正在播放的任何歌曲,不确定缓冲我从 icecast 获得的内容是否是一个好方法,有什么建议吗? 还是开发自己的实时流协议 (RTSP) 的正确方法? Icecast 不适合这样做。一个普通的网络服务器就可以了。 对不起,我现在有点迷茫,你说的普通网络服务器是什么意思?我不需要流媒体服务器来实现吗?一个普通的 Web 服务器是否足以在不同时间托管和流式传输大量不同的 mp3/ogg 文件给不同的用户/客户端? 我需要做的就像一个单播点播服务器,任何用户都可以选择任何歌曲并播放它,而不是实时传输。简而言之,就像一个新的 spotify 或grooveshark。现在我想也许你是对的,Icecast 不是正确的做法,但我认为使用带有 http 的普通 Web 服务器也不是正确的方法,因为正如我一直在阅读的那样,使用 http 进行流式传输是完全低效的,你建议我应该怎么做?以上是关于icecast 音频客户端的问题的主要内容,如果未能解决你的问题,请参考以下文章
如何在三星智能电视上提取嵌入在 Icecast 音频(广播)流中的流式“正在播放”数据
可以使用 Web Audio API 和 createMediaElementSource 分析来自 Icecast 的流式音频吗?
如何在 React Native 上捕获麦克风音频并将其流式传输到 IceCast 端点?