将 WAV 转换为 base64

use*_*884 3 c audio wav python-2.7

我有一些波形文件 (.wav),我需要将它们转换为 base64 编码的字符串。你能指导我如何在 Python/C/C++ 中做到这一点吗?

For*_*Bru 6

Python

最简单的方法

from base64 import b64encode

f=open("file.wav")
enc=b64encode(f.read())
f.close()
Run Code Online (Sandbox Code Playgroud)

现在enc包含编码值。

您可以使用稍微简化的版本:

import base64

enc=base64.b64encode(open("file.wav").read())
Run Code Online (Sandbox Code Playgroud)

C

有关文件的 base64 编码示例,请参阅文件。


C++

在这里可以看到字符串的base64转换。我认为对文件做同样的事情不会太难。


use*_*884 6

@ForceBru 的回答

import base64 
enc=base64.b64encode(open("file.wav").read())
Run Code Online (Sandbox Code Playgroud)

有一个问题。我注意到对于一些 WAV 文件,我编码生成的字符串比预期的要短。

“open()”的 Python 文档说

如果省略 mode,则默认为 'r'。默认是使用文本模式,它可以在写入和读取时将 '\n' 字符转换为特定于平台的表示形式。因此,打开二进制文件时,应在模式值后附加“b”以二进制模式打开文件,这将提高可移植性。

因此,代码片段不是以二进制形式读取的。因此,应该使用以下代码以获得更好的输出。

import base64
enc = base64.b64encode(open("file.wav", "rb").read())
Run Code Online (Sandbox Code Playgroud)