写在前面: 我是「虐猫人薛定谔i」,一个不满足于现状,有梦想,有追求的00后
\quad
本博客主要记录和分享自己毕生所学的知识,欢迎关注,第一时间获取更新。
\quad
不忘初心,方得始终。
\quad❤❤❤❤❤❤❤❤❤❤
目录结构
设计思路
需要有一个音乐类,其属性如下所示
type MusicEntry struct {
Id string
Name string
Artist string
Source string
Type string
}
借助音乐类,实现一个音乐管理类,用来管理列表中的音乐,实现对列表中音乐的增加、删除、查找等操作
type MusicManager struct {
musics []MusicEntry
}
其中core模块用来实现模拟音乐播放的功能,目前只实现了MP3和WAV文件,可以继续进行扩展
在mplayer中实现对播放器的控制,其中包括从键盘获取输入,并进行相应的处理操作
代码
mplayer.go
package main
import "bufio"
import "fmt"
import "os"
import "strconv"
import "strings"
import "SMP/m/src/library"
import "SMP/m/src/core"
var lib *library.MusicManager
var id = 1
func handleLibCommands(tokens []string) {
switch tokens[1] {
case "list":
for i := 0; i < lib.Len(); i++ {
e, _ := lib.Get(i)
fmt.Println(i+1, ":", e.Name, e.Artist, e.Source, e.Type)
}
case "add":
if len(tokens) == 6 {
id++
lib.Add(&library.MusicEntry{
Id: strconv.Itoa(id),
Name: tokens[2], Artist: tokens[3