用pygame播放flac格式的音乐

部署运行你感兴趣的模型镜像

之前用酷我音乐下载的高品质的音乐现在用QQ音乐不给播放了,就使Deepseek给我写了一段Python的代码,好使!NICE

Python代码如下:

import pygame
import time

# 初始化 Pygame
pygame.init()

# 初始化音频模块
pygame.mixer.init()

# 加载 FLAC 文件
flac_file = "I:\\music\\往后余生.flac"  # 替换为你的 FLAC 文件路径
pygame.mixer.music.load(flac_file)

# 播放 FLAC 文件
pygame.mixer.music.play()

# 等待音乐播放完成
while pygame.mixer.music.get_busy():
    time.sleep(1)  # 每秒检查一次是否播放完毕

# 退出 Pygame
pygame.quit()

增加播放列表、播放下一首等功能:

import pygame
import os
import time
import random

# 初始化 Pygame
pygame.init()

# 初始化音频模块
pygame.mixer.init()

# 定义文件夹路径
music_folder = "I:\\music\\电影歌曲"  # 替换为你的 FLAC 文件所在的文件夹路径

# 获取文件夹内所有 FLAC 文件
flac_files = [f for f in os.listdir(music_folder) if f.endswith('.flac')]

if not flac_files:
    print("文件夹中没有 FLAC 文件!")
    exit()

# 显示播放列表
print("播放列表:")
for i, file in enumerate(flac_files):
    print(f"{i + 1}. {file}")

# 选择播放模式
print("\n请选择播放模式:")
print("1. 顺序播放")
print("2. 随机播放")
print("3. 单曲循环")
mode = input("输入数字选择模式 (1/2/3): ")

# 根据模式调整播放顺序
if mode == "2":
    random.shuffle(flac_files)  # 随机播放
elif mode == "3":
    flac_files = [flac_files[0]]  # 单曲循环,只保留第一首

# 播放音乐
current_index = 0
while current_index < len(flac_files):
    flac_file = flac_files[current_index]
    file_path = os.path.join(music_folder, flac_file)
    print(f"\n正在播放: {flac_file}")

    # 加载并播放 FLAC 文件
    pygame.mixer.music.load(file_path)
    pygame.mixer.music.play()

    # 用户交互
    while pygame.mixer.music.get_busy():
        print("\n操作选项:")
        print("1. 下一首")
        print("2. 停止播放")
        print("3. 退出程序")
        choice = input("输入数字选择操作 (1/2/3): ")

        if choice == "1":
            pygame.mixer.music.stop()  # 停止当前播放
            break  # 跳到下一首
        elif choice == "2":
            pygame.mixer.music.stop()
            print("播放已停止。")
            exit()
        elif choice == "3":
            pygame.mixer.music.stop()
            print("程序已退出。")
            pygame.quit()
            exit()
        else:
            print("无效输入,请重新选择。")

    # 更新当前播放索引
    if mode == "3":
        current_index = 0  # 单曲循环,始终播放第一首
    else:
        current_index += 1  # 顺序或随机播放下一首

# 退出 Pygame
pygame.quit()

效果如下:
在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 功能概述 使用 `pygame` 实现音乐播放器,可以支持播放、暂停、继续、停止、音量控制、切歌等功能。以下是一个完整的教程和示例代码。 --- ### 初始化和播放音乐 首先,需要初始化 `pygame` 的音频模块并加载音乐文件。可以使用 `pygame.mixer.music` 模块来播放背景音乐: ```python import pygame import sys pygame.init() screen = pygame.display.set_mode((800, 600)) pygame.display.set_caption("Pygame 音乐播放器") # 加载音乐 pygame.mixer.music.load("music.mp3") # 播放音乐 (循环播放) pygame.mixer.music.play(-1) ``` --- ### 控制播放功能 实现音乐播放器的核心功能包括播放、暂停、继续、停止和音量控制。以下是如何使用 `pygame` 提供的函数来实现这些功能: #### 播放音乐 ```python pygame.mixer.music.play(-1) # 循环播放 ``` #### 暂停播放 ```python pygame.mixer.music.pause() ``` #### 继续播放 ```python pygame.mixer.music.unpause() ``` #### 停止播放 ```python pygame.mixer.music.stop() ``` #### 调整音量 ```python pygame.mixer.music.set_volume(0.5) # 音量范围是 0.0 到 1.0 ``` #### 淡出停止 ```python pygame.mixer.music.fadeout(5000) # 淡出 5 秒后停止 ``` --- ### 完整示例代码 以下是一个完整的示例代码,支持播放、暂停、继续、停止、音量控制和退出功能: ```python import pygame import sys def music_player(): pygame.init() screen = pygame.display.set_mode((800, 600)) pygame.display.set_caption("Pygame 音乐播放器") # 加载音乐 pygame.mixer.music.load("music.mp3") # 播放音乐 (循环播放) pygame.mixer.music.play(-1) # 设置初始音量 pygame.mixer.music.set_volume(0.5) running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 键盘事件 if event.type == pygame.KEYDOWN: if event.key == pygame.K_p: # 按 P 播放 pygame.mixer.music.play(-1) elif event.key == pygame.K_s: # 按 S 暂停 pygame.mixer.music.pause() elif event.key == pygame.K_r: # 按 R 继续 pygame.mixer.music.unpause() elif event.key == pygame.K_t: # 按 T 停止 pygame.mixer.music.stop() elif event.key == pygame.K_UP: # 按上键增加音量 pygame.mixer.music.set_volume(min(1.0, pygame.mixer.music.get_volume() + 0.1)) elif event.key == pygame.K_DOWN: # 按下键减少音量 pygame.mixer.music.set_volume(max(0.0, pygame.mixer.music.get_volume() - 0.1)) elif event.key == pygame.K_f: # 按 F 淡出停止 pygame.mixer.music.fadeout(5000) screen.fill((255, 255, 255)) pygame.display.flip() pygame.quit() sys.exit() if __name__ == "__main__": music_player() ``` --- ### 支持多首歌曲播放 可以扩展功能,支持播放多首歌曲,并通过键盘控制切换歌曲。以下是一个简单的实现: ```python import pygame import sys def music_player(): pygame.init() screen = pygame.display.set_mode((800, 600)) pygame.display.set_caption("Pygame 音乐播放器") # 音乐文件列表 music_files = ["music1.mp3", "music2.mp3"] current_index = 0 # 加载并播放第一首音乐 pygame.mixer.music.load(music_files[current_index]) pygame.mixer.music.play() running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_n: # 按 N 切换下一首 current_index = (current_index + 1) % len(music_files) pygame.mixer.music.load(music_files[current_index]) pygame.mixer.music.play() elif event.key == pygame.K_p: # 按 P 播放 pygame.mixer.music.play() elif event.key == pygame.K_s: # 按 S 暂停 pygame.mixer.music.pause() elif event.key == pygame.K_r: # 按 R 继续 pygame.mixer.music.unpause() elif event.key == pygame.K_t: # 按 T 停止 pygame.mixer.music.stop() elif event.key == pygame.K_UP: # 按上键增加音量 pygame.mixer.music.set_volume(min(1.0, pygame.mixer.music.get_volume() + 0.1)) elif event.key == pygame.K_DOWN: # 按下键减少音量 pygame.mixer.music.set_volume(max(0.0, pygame.mixer.music.get_volume() - 0.1)) screen.fill((255, 255, 255)) pygame.display.flip() pygame.quit() sys.exit() if __name__ == "__main__": music_player() ``` --- ### 注意事项 - 音乐文件格式支持包括 `.mp3`, `.wav`, `.ogg`, `.flac` 等。 - 确保音乐文件路径正确,否则会抛出异常。 - 可以结合 `pygame` 的图形界面功能,添加按钮和进度条等交互元素。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值