播放器设计 要求:实现播放、循环播放、暂停、快进、下一首、打开选择功能
《軟件開發工具》實驗
一、實驗內容
實驗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()
總結
以上是生活随笔為你收集整理的播放器设计 要求:实现播放、循环播放、暂停、快进、下一首、打开选择功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用3D建模软件的6个行业,创意与设计=
- 下一篇: GBase 8c V3.0.0版本关键字