使用Python的pydub库播放音乐并打印二进制数据
import pydub import pydub.playback import numpy as np import time import threading def play_audio_and_print_binary(file_path): # 加载音频文件 audio = pydub.AudioSegment.from_file(file_path) # 将音频转换为原始数据 raw_data = np.array(audio.get_array_of_samples()) # 创建播放线程 def play_audio(): pydub.playback.play(audio) play_thread = threading.Thread(target=play_audio) play_thread.start() # 打印二进制数据 try: for sample in raw_data: # 将样本转换为二进制表示(16位) binary_representation = format(sample & 0xFFFF, '016b') print(binary_representation, end=' ', flush=True) # 控制打印速度,使其与音频播放大致同步 time.sleep(audio.duration_seconds / len(raw_data)) except KeyboardInterrupt: print("\n停止播放...") play_thread.join() if __name__ == "__main__": # 替换为你的音频文件路径 audio_file = "s.mp3" play_audio_and_print_binary(audio_file)