我想在Elixir中构建一个无线电服务器,我目前的代码是使用plug&牛仔(感谢@rozap)将音频文件流式传输到浏览器客户端
defmodule Plugtest do
import Plug.Conn
@chunk_size 128
@song_path "./song.mp3"
@content_type "audio/mpeg"
@status_code 200
def init(opts), do: opts
def call(conn, opts) do
conn = conn
|> send_chunked(@status_code)
|> put_resp_content_type(@content_type)
File.stream!(@song_path, [], @chunk_size)
|> Enum.into(conn)
end
end
IO.puts "streaming @ http://localhost:4000"
Plug.Adapters.Cowboy.http Plugtest, []
我想让这台服务器工作并播放播放列表中的歌曲 (对于这个测试循环song.mp3很好) 并保存当前的块,以便每个新用户将从此块中侦听 这将使所有用户从同一时间听到,就像常规的无线电服务器一样,我该如何实现呢?