随机播放目录下mp3 ()x =
文件_枚举 (取运行目录 () +
“\mp3”,
“*.mp3”, mp3, 真, ,
真)置随机数种子 ()调试输出 (mp3
[取随机数 (1, x
)])播放MP3 (, mp3
[取随机数 (1, x
)])
变量名 | 类 型 | 静态 | 数组 | 备 注 |
mp3文件列表 | 文本型 | | 0 |
文件数量 | 整数型 | | |
已播放标记 | 整数型 | | 0 |
剩余数量 | 整数型 | | |
随机索引 | 整数型 | | |
实际索引 | 整数型 | | |
i | 整数型 | | |
循环变量 | 整数型 | | |
ii | 整数型 | | |
文件数量 =
文件_枚举 (取运行目录 () +
“\mp3”,
“*.mp3”, mp3文件列表, 真, ,
真)
如果 (文件数量 ≤ 0
)
信息框 (“未找到MP3文件!”, 0,
“错误”,
)
返回 ()

计次循环首 (文件数量,
)
加入成员 (已播放标记, ii
)
计次循环尾 ()剩余数量 = 文件数量
置随机数种子 ()
判断循环首 (剩余数量 > 0
)

随机索引 =
取随机数 (1, 剩余数量
)
实际索引 = 0

计次循环首 (文件数量, 循环变量
)

如果 (已播放标记
[循环变量
] = 0
) 


实际索引 = 实际索引 + 1



如果 (实际索引 = 随机索引
)





播放MP3 (, mp3文件列表
[循环变量
])






已播放标记
[循环变量
] = 1




剩余数量 = 剩余数量 - 1






跳出循环 ()

















计次循环尾 ()
判断循环尾 ()返回 ()
文件_枚举 (取运行目录 () +
“\mp3”,
“*.mp3”, mp3, 真, ,
真)置随机数种子 ()播放MP3 (, mp3
[取随机数 (1,
取数组成员数 (mp3
))
])
窗口程序集名 | 保 留 | 保 留 | 备 注 |
窗口程序集_启动窗口 | | | |
变量名 | 类 型 | 数组 | 备 注 |
mp3列表 | 文本型 | 0 |
当前索引 | 整数型 | |
播放状态 | 逻辑型 | |
|
mciSendString | 整数型 | |
|
winmm.dll |
|
mciSendStringA |
|
指令 | 文本型 | | |
返回信息 | 文本型 | | |
返回长度 | 整数型 | | |
窗口句柄 | 整数型 | | |
播放状态 = 假
列表框1.可视 = 假
按钮_选择目录.标题 = "选择MP3目录"
按钮_播放.标题 = "播放/暂停"
按钮_停止.标题 = "停止"
按钮_下一首.标题 = "下一首"
目录路径 =
浏览文件夹 ("选择MP3文件夹",
)
如果真 (目录路径 ≠ ""
)
枚举MP3文件 (目录路径
)
如果真 (取数组成员数 (mp3列表
) > 0
)
随机排序 ()

列表框1.
清空 ()

计次循环首 (取数组成员数 (mp3列表
), 当前索引
)


列表框1.
加入项目 (取文本右边 (mp3列表
[当前索引
],
取文本长度 (mp3列表
[当前索引
]) -
倒找文本 (mp3列表
[当前索引
], "\", ,
假)),
)

计次循环尾 ()

当前索引 = 0



变量名 | 类 型 | 静态 | 数组 | 备 注 |
文件句柄 | 整数型 | | |
文件信息 | 文本型 | | |
清除数组 (mp3列表
)文件句柄 =
寻找文件 (目录 + "\*.mp3",
)
判断循环首 (文件句柄 ≠ 0
)
加入成员 (mp3列表, 目录 + "\" + 文件信息
)
文件句柄 =
寻找文件 (,
)
判断循环尾 ()变量名 | 类 型 | 静态 | 数组 | 备 注 |
i | 整数型 | | |
j | 整数型 | | |
temp | 文本型 | | |
置随机数种子 ()
计次循环首 (取数组成员数 (mp3列表
) × 3,
)
i =
取随机数 (1,
取数组成员数 (mp3列表
))

j =
取随机数 (1,
取数组成员数 (mp3列表
))

如果真 (i ≠ j
)

temp = mp3列表
[i
]

mp3列表
[i
] = mp3列表
[j
]

mp3列表
[j
] = temp

计次循环尾 ()
如果真 (取数组成员数 (mp3列表
) = 0
)
返回 ()

如果 (播放状态
)
mciSendString ("pause myMp3", , 0, 0
)
播放状态 = 假

如果 (当前索引 = 0
)

当前索引 = 1

mciSendString ("seek myMp3 to start", , 0, 0
)
mciSendString ("play myMp3", , 0, 0)
播放状态 = 真

mciSendString ("close myMp3", , 0, 0
)播放状态 = 假
当前索引 = 0
如果真 (取数组成员数 (mp3列表
) = 0
)
返回 ()

当前索引 = 当前索引 + 1
如果真 (当前索引 >
取数组成员数 (mp3列表
))

当前索引 = 1
播放指定文件 (当前索引)
如果真 (索引 < 1
或 索引 >
取数组成员数 (mp3列表
))
返回 ()

文件路径 = mp3列表
[索引
]mciSendString ("open """ + 文件路径 + """ alias myMp3", , 0, 0
)mciSendString ("play myMp3", , 0, 0
)播放状态 = 真
标题 = "正在播放:" +
取文本右边 (文件路径,
取文本长度 (文件路径
) -
倒找文本 (文件路径, "\", ,
假))
mciSendString ("close all", , 0, 0
)