将音频转换为字符串(就像我们可以将图像转换为Base64String)?

时间:2014-06-16 16:06:40

标签: c# .net

我一直在使用Convert.ToBase64String(...)将图片嵌入到XML文档中,现在我想将录音嵌入到XML文件中。

我们是否可以将音频文件转换为某种字符串,就像将图像转换为字符串以嵌入XML文件一样?

2 个答案:

答案 0 :(得分:1)

我相信您希望将音频文件作为二进制System.IO.File.ReadAllBytes()读取,然后进行转换System.Convert.ToBase64String()

答案 1 :(得分:1)

起初,我原先想到通过Convert.ToBase64String转换为字符串(...但至少在我的例子中,我无法转换回字节并使用该方法播放声音。

以下是一个适用于此处的快速示例:

static void Main(string[] args)
{
    string filename = @"C:\Users\Public\Music\Sample Music\Ping.wav";
    string tmp = "";
    SoundPlayer sp;
    if (File.Exists(filename))
    {
        byte[] filebytes = File.ReadAllBytes(filename);
        Console.WriteLine("filebytes length: " + filebytes.Length);
        //tmp = Convert.ToBase64String(File.ReadAllBytes(filename), Base64FormattingOptions.None);
        tmp = System.Text.Encoding.BigEndianUnicode.GetString(File.ReadAllBytes(filename));
        Console.Write("string length: " + tmp.Length);
        //sp = new SoundPlayer(new MemoryStream(filebytes));
        //sp.Play();

        Console.ReadLine();

        byte[] bytes = System.Text.Encoding.BigEndianUnicode.GetBytes(tmp);//Encoding.ASCII.GetBytes(tmp);
        Console.WriteLine("bytes length: " + bytes.Length);
        sp = new SoundPlayer(new MemoryStream(bytes));
        sp.Play();
        Console.ReadLine();
    }
}