JSON是一种轻量级的数据交换格式,通常用于前后端之间的数据传输。除了传递文本或数字等基本类型外,JSON也可以传递音频和视频等二进制数据。
{ "audio": { "fileName": "my_audio.mp3", "fileData": "BASE64_ENCODED_AUDIO_DATA" } }
上面的JSON代码演示了如何发送音频文件。其中,"fileName"表示音频文件的名称,"fileData"则使用Base64编码后的二进制数据。
在服务器端,我们可以使用以下代码将音频文件转换为Base64编码:
import base64 with open('my_audio.mp3', 'rb') as file: audio_data = file.read() encoded_audio_data = base64.b64encode(audio_data)
然后,将"fileName"和"encoded_audio_data"添加到JSON中并发送到客户端:
import json audio_json = { "audio": { "fileName": "my_audio.mp3", "fileData": encoded_audio_data.decode('utf-8') } } json_str = json.dumps(audio_json) # 发送json_str到客户端
在客户端,可以使用以下代码将Base64编码的音频数据解码并保存为音频文件:
import base64 audio_json = # 接收到的JSON数据 encoded_audio_data = audio_json['audio']['fileData'].encode('utf-8') decoded_audio_data = base64.b64decode(encoded_audio_data) with open(audio_json['audio']['fileName'], 'wb') as file: file.write(decoded_audio_data)
以上是使用JSON发送音频的基本流程,这种方式在一些需要实时传输音频的应用中非常实用。