在 C# 中播放 byte[] [关闭]

Posted

技术标签:

【中文标题】在 C# 中播放 byte[] [关闭]【英文标题】:Playing byte[] in C# [closed] 【发布时间】:2014-02-23 23:13:23 【问题描述】:

我正在尝试制作的这个程序背后的概念是一个新颖的音频加密应用程序。我在 C# 中使用音频库的经验很少。我正在尝试录制声音,然后将其转换为 byte[] 以进行一些加密。然后将其保存为 .wav 格式。然后,我需要读取加密的音频文件并将其转换为字节数组以解密,然后播放解密的字节数组。我知道在执行加密/解密之前先保存文件会更容易,但我不希望保存未加密的版本。

为了首先将录制的音频转换为 byte[] 然后保存的最佳方式/库是什么?最后,播放解密的字节 [] 的最佳方法是什么。任何代码/伪代码将不胜感激。

谢谢

【问题讨论】:

【参考方案1】:

您可以使用SoundPlayer 类播放音频,并且可以使用流向它提供数据。对于您的情况,MemoryStream 将是合适的解决方案。

我会记下来的:

// Get your sound buffer
byte[] sound = GetMySounds();
// Place the data into a stream
using (MemoryStream ms = new MemoryStream(sound))

    // Construct the sound player
    SoundPlayer player = new SoundPlayer(ms);
    player.Play();

【讨论】:

太棒了!一切似乎都在工作。您知道录制声音并将其直接转换为字节数组的最佳方法是什么吗?同样对于可能查看此线程的人来说,SoundPlayer 需要是 System.Media.SoundPlayer 我不知道有什么方法可以简单地描述为播放声音,但似乎有几个很好的 .NET 音频库。看看NAudio和following SO question 这适用于 WAV 但不适用于 MP3

以上是关于在 C# 中播放 byte[] [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

C# Android:点击播放声音[关闭]

从 C# 中的字节 [] 获取内容类型 [关闭]

C#自适应声音消除[关闭]

如何在统一 c# 中检测用户 IP 地址? [关闭]

SoudPlayer 一遍又一遍地播放同一个文件[关闭]

添加了 C# 音效[关闭]