c# - AudioGraph可以播放流吗?

标签 c# .net audio uwp

由于应用程序的限制,我无法在UWP应用程序中使用IStorageFile,因此audioGraph.CreateFileInputNodeAsync()不是一个选择。
我只能使用声音文件的内容获取(I / O)Stream

有没有一种方法可以配置AudioGraph以将此类流用作输入?

谢谢!

最佳答案

Is there a way to configure an AudioGraph to use such stream as input?



根据Audio graphs类,存在三种输入节点:“设备输入节点”,“文件输入节点”和“音频帧输入节点”。不幸的是,没有想要的流输入节点。您需要将流转换为 StroageFile ,然后使用CreateFileInputNodeAsync()方法。

Can AudioGraph play streams?



如果只想播放流而不使用StorageFile类,则可以考虑使用 MediaPlayer 。通过MediaSource方法从IRandomAccessStream创建 CreateFromStream 。例如:

XAML代码:
<MediaPlayerElement x:Name="mediaplayer" AutoPlay="True"></MediaPlayerElement>
<Button x:Name="btnmedia" Click="btnmedia_Click" Content="media play"></Button>

后面的代码:
private async void btnmedia_Click(object sender, RoutedEventArgs e)
{
    ...
    Stream filestream = buffers.AsStream();
    IRandomAccessStream randomAccessStream = filestream.AsRandomAccessStream();
    MediaSource mediasource = MediaSource.CreateFromStream(randomAccessStream, "mp3");
    MediaPlayer player = new MediaPlayer();
    player.Source = mediasource;
    mediaplayer.SetMediaPlayer(player);
}

此外,奇怪的是,您无法在UWP应用中使用StorageFile类。它是文件系统的重要类。我认为您应该考虑解决此限制(如果可能)。

关于c# - AudioGraph可以播放流吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46542222/

相关文章:

c# - Collection.Contains() 使用什么来检查现有对象?

c# - CSV-Helper 无法转换 bool 值时出现问题

c# - 如何将数据从表单发送到类?

c# - 静态方法中的泛型参数正在调用同一个类——有更好的选择吗?

.net - 工作进程回收,因为它达到了虚拟内存限制

c# - 列表集合 XML 序列化

c# - 全局低级键盘 Hook - Race Condition

audio - 用手机测量分贝

c++ - 使用 Qt 开发音频游戏?

c - 将文件写入磁盘并使用缓冲区时 C 中的段错误 11