精易论坛

标题: 文件夹里MP3随机播放 [打印本页]

作者: 85886815    时间: 2025-5-18 16:06
标题: 文件夹里MP3随机播放
怎么让文件夹里的MP3随机播放    且电脑不死机   以上写法播放不了

随机mp3.zip

2.57 MB, 下载次数: 4


作者: 山猫啊    时间: 2025-5-18 16:06
MP3.e (1.07 MB, 下载次数: 5)
作者: 山猫啊    时间: 2025-5-18 16:09
按钮里面没有调用子程序
作者: SummerTail    时间: 2025-5-18 16:09
  
子程序名返回值类型公开备 注
_按钮1_被单击  
随机播放目录下mp3 ()
子程序名返回值类型公开备 注
随机播放目录下mp3  
变量名类 型静态数组备 注
mp3文本型0
x整数型 
x = 文件_枚举 (取运行目录 ()“\mp3”, “*.mp3”, mp3, 真, , )
置随机数种子 ()
调试输出 (mp3 [取随机数 (1, x)])
播放MP3 (, mp3 [取随机数 (1, x)])


i支持库列表   支持库注释   
spec特殊功能支持库



额,你没调用你写的方法肯定不播放啊
作者: 安慕希ii    时间: 2025-5-18 16:46
  
子程序名返回值类型公开备 注
随机播放目录下mp3  
变量名类 型静态数组备 注
mp3文件列表文本型0
文件数量整数型 
已播放标记整数型0
剩余数量整数型 
随机索引整数型 
实际索引整数型 
i整数型 
循环变量整数型 
ii整数型 
' 枚举MP3文件
文件数量 = 文件_枚举 (取运行目录 ()“\mp3”, “*.mp3”, mp3文件列表, 真, , )
如果 (文件数量 ≤ 0)
信息框 (“未找到MP3文件!”, 0, “错误”, )
返回 ()



' 初始化已播放标记数组(全部标记为未播放)
计次循环首 (文件数量, )
加入成员 (已播放标记, ii)  ' 0表示未播放
计次循环尾 ()
剩余数量 = 文件数量
置随机数种子 ()
' 循环播放所有文件(不重复)
判断循环首 (剩余数量 > 0)
' 随机选择一个未播放的文件
随机索引 = 取随机数 (1, 剩余数量)
实际索引 = 0
计次循环首 (文件数量, 循环变量)
如果 (已播放标记 [循环变量] = 0)  ' 未播放的文件
实际索引 = 实际索引 + 1
如果 (实际索引 = 随机索引)
' 找到目标文件,播放它
播放MP3 (, mp3文件列表 [循环变量])
' 标记为已播放
已播放标记 [循环变量] = 1
剩余数量 = 剩余数量 - 1
' 等待用户确认后继续(改进版)
跳出循环 ()




计次循环尾 ()
判断循环尾 ()
返回 ()


作者: aipca    时间: 2025-5-18 16:51
那个X的变量是干啥的?取枚举出来数组成员数的随机数即可。

  
子程序名返回值类型公开备 注
随机播放目录下mp3  
变量名类 型静态数组备 注
mp3文本型0
文件_枚举 (取运行目录 ()“\mp3”, “*.mp3”, mp3, 真, , )
置随机数种子 ()
播放MP3 (, mp3 [取随机数 (1, 取数组成员数 (mp3))])


作者: 你的猫    时间: 2025-5-18 19:00
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
mp3列表文本型0 
当前索引整数型  
播放状态逻辑型  

DLL命令名返回值类型公开备 注
mciSendString整数型 
DLL库文件名:
winmm.dll
在DLL库中对应命令名:
mciSendStringA
参数名类 型传址数组备 注
指令文本型
返回信息文本型
返回长度整数型
窗口句柄整数型

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
播放状态 = 假
列表框1.可视 = 假
按钮_选择目录.标题 = "选择MP3目录"
按钮_播放.标题 = "播放/暂停"
按钮_停止.标题 = "停止"
按钮_下一首.标题 = "下一首"
子程序名返回值类型公开备 注
_按钮_选择目录_被单击  
变量名类 型静态数组备 注
目录路径文本型 
目录路径 = 浏览文件夹 ("选择MP3文件夹", )
如果真 (目录路径 ≠ "")
枚举MP3文件 (目录路径)
如果真 (取数组成员数 (mp3列表) > 0)
随机排序 ()
列表框1.清空 ()
计次循环首 (取数组成员数 (mp3列表), 当前索引)
列表框1.加入项目 (取文本右边 (mp3列表 [当前索引], 取文本长度 (mp3列表 [当前索引])倒找文本 (mp3列表 [当前索引], "\", , )), )
计次循环尾 ()
当前索引 = 0


子程序名返回值类型公开备 注
枚举MP3文件  
参数名类 型参考可空数组备 注
目录文本型
变量名类 型静态数组备 注
文件句柄整数型 
文件信息文本型 
清除数组 (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)


i支持库列表   支持库注释   
shellEx扩展功能支持库一
iext扩展界面支持库一


作者: xyts022618    时间: 2025-5-18 20:02
看我贴:音乐播放器,占用内存远小于系统自带播放器,响应迅速 https://125.confly.eu.org/forum.php?mod=viewthread&tid=14715844 (出处: 精易论坛)
作者: haoren1212    时间: 2025-5-18 20:13
使用线程
作者: 走一回    时间: 2025-5-18 22:25
_按钮1_被单击      这个事件下要调用   子程序:随机播放目录下mp3




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4