不同歌曲的同一个来源

问题描述 投票:0回答:1

我正在开发一个客户端-服务器应用程序,它将数据以块的形式从服务器发送到每个客户端。反过来,客户端接受该数据并立即将其传递给 rodio 进行播放。但是,当客户端收到属于新歌曲而不是上一首歌曲的数据时,rodio 将停止播放数据。

为什么我不能对不同的歌曲使用同一个源?如果我需要该功能,我该如何解决这个问题?

简单代码示例:

use std::{fs, io::Cursor};
fn main() {
    let (_stream, handle) = rodio::OutputStream::try_default().unwrap();
    let sink = rodio::Sink::try_new(&handle).unwrap();

    let mut data = fs::read("guiro-sweep.mp3").unwrap();
    data.extend(fs::read("on_the_moon.mp3").unwrap());

    sink.append(rodio::Decoder::new(Cursor::new(data)).unwrap());

    sink.sleep_until_end();
}

当我们运行这个程序时,我们看到第一个源播放成功,但是当第二个源应该开始播放时,程序终止。

rust audio-streaming rodio
1个回答
0
投票

尝试阅读文档,兄弟

© www.soinside.com 2019 - 2024. All rights reserved.