1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 播放器设计 要求:实现播放 循环播放 暂停 快进 下一首 打开选择功能

播放器设计 要求:实现播放 循环播放 暂停 快进 下一首 打开选择功能

时间:2021-02-17 11:18:01

相关推荐

播放器设计 要求:实现播放 循环播放 暂停 快进 下一首 打开选择功能

《软件开发工具》实验

一、实验内容

实验1:写字板设计

要求:实现字体颜色、大小更改;实现查找、替换功能

例图如下:

实验2:画图工具设计

要求:实现画笔粗细、颜色选择;实现裁剪、插入图片

例图如下:

实验3:播放器设计

要求:实现播放、循环播放、暂停、快进、下一首、打开选择功能

例图如下:

二、实验要求

完成实验1、2、3并上交源程序及实验报告。

三、考核标准

1. 上交源程序前,指导教师检查程序代码和实验结果。通过若干个提问,检查相关概念的理解,以及实验的独立完成情况。

2. 程序界面、功能的完善性、运行的可靠性是评定成绩的重要标准。

# 导入所需的模块

import os

import pygame

# 定义一个播放器类

class Player:

# 初始化

def __init__(self):

pygame.init()

# 定义音乐文件列表

self.play_list = []

# 定义当前播放音乐的索引

self.current_index = 0

# 定义当前播放状态

self.is_paused = False

# 添加歌曲到播放列表

def add_music(self, music_file):

# 将文件路径添加到播放列表中

self.play_list.append(music_file)

# 选择播放

def select_play(self, index):

# 获取当前音频文件

self.current_index = index

# 获取当前音频文件路径

music_file = self.play_list[self.current_index]

# 加载音乐文件

pygame.mixer.music.load(music_file)

# 播放音乐

pygame.mixer.music.play()

# 播放

def play(self):

# 如果播放列表不为空

if self.play_list:

# 加载音乐文件

pygame.mixer.music.load(self.play_list[self.current_index])

# 播放音乐

pygame.mixer.music.play()

# 设置循环播放

pygame.mixer.music.play(-1)

# 修改播放状态

self.is_paused = False

# 暂停

def pause(self):

# 如果当前是播放状态

if not self.is_paused:

# 暂停播放

pygame.mixer.music.pause()

# 修改播放状态

self.is_paused = True

# 继续播放

def resume(self):

# 如果当前是暂停状态

if self.is_paused:

# 继续播放

pygame.mixer.music.unpause()

# 修改播放状态

self.is_paused = False

# 快进

def fast_forward(self):

# 获取音乐文件的时长

music_length = pygame.mixer.music.get_length()

# 将当前播放时间加1秒

pygame.mixer.music.set_pos(music_length + 1)

# 下一首

def next_song(self):

# 如果当前播放列表不为空

if self.play_list:

# 获取播放列表的最大索引

max_index = len(self.play_list) - 1

# 如果当前音乐已经是最后一首

if self.current_index == max_index:

# 将当前索引重置为第一首

self.current_index = 0

else:

# 将当前索引加1

self.current_index += 1

# 选择播放

self.select_play(self.current_index)

# 主函数

def main():

# 创建播放器对象

player = Player()

# 定义音乐文件路径

music_dir = os.path.dirname(os.path.abspath(__file__))

# 遍历音乐文件路径

for root, dirs, files in os.walk(music_dir):

# 遍历文件

for file in files:

# 如果文件是mp3文件

if file.endswith(".mp3"):

# 将文件路径添加到播放列表中

player.add_music(os.path.join(root, file))

# 播放音乐

player.play()

while True:

# 获取用户输入

command = input("请输入指令:").strip()

# 如果用户输入为空

if not command:

continue

# 如果用户输入指令为q

if command == 'q':

# 停止播放音乐

pygame.mixer.music.stop()

break

# 如果用户输入指令为暂停

elif command == 'pause':

# 暂停播放音乐

player.pause()

# 如果用户输入指令为继续

elif command == 'resume':

# 继续播放音乐

player.resume()

# 如果用户输入指令为快进

elif command == 'ff':

# 快进播放音乐

player.fast_forward()

# 如果用户输入指令为下一首

elif command == 'next':

# 播放下一首音乐

player.next_song()

# 如果用户输入指令为打开选择

elif command == 'open':

# 遍历播放列表

for index, music in enumerate(player.play_list):

# 打印歌曲名

print("%d. %s" % (index, music))

# 获取用户输入的索引

index = int(input("请输入歌曲编号:"))

# 选择播放

player.select_play(index)

# 调用主函数

if __name__ == '__main__':

main()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。