类似无线电的流媒体服务器Elixir plug& cowboy

时间:2016-07-21 09:02:43

标签: streaming elixir

我想在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很好) 并保存当前的块,以便每个新用户将从此块中侦听 这将使所有用户从同一时间听到,就像常规的无线电服务器一样,我该如何实现呢?

0 个答案:

没有答案