最近在做计算,写了一些matlab代码,脑壳还疼,所以决定发挥一下逗B精神,写一个程序玩一下。
想了想,既然写代码的时候喜欢听歌,而且我的电脑打开网易音乐的速度巨慢(不知道为什么。。),那些一个程序直接播放音乐多好,以后就不用打开那么多软件了。
嗯,这是一个挺有意思的东东。。。
好吧,这是研究背景。。。。。。明显已经中毒了。。。不过写的好low。
言归正传,首先发现的sound函数,而且matlab自带一些声音,比如
load('train'); sound(y,Fs)%y,Fs are matrix
这是matlab自带的声音,火车拉笛的声音。
既然可以播放声音,那问题就简单了(当时那么想的。。)
接下来只要写几行代码来读取歌曲就OK了。
music_read=dir(fullfile('路径','*.mp3'));
这样便可以找到'路径'下所有的mp3文件,当然其他的类似咯。这样读取播放单个歌曲没有问题了,下一步就想最好是播放列表就好了,自然就想到了循环(菜鸟的高度很低。。),但是问题就来了,每次循环的时间很短,但是歌曲的播放时间不一样长,后面发现可以用audioinfo来读取歌曲信息。下面是代码
music_num = length(music_read); y_cell = cell(1,music_num); Fs_cell = cell(1,music_num); music_name = cell(1,music_num); for k = 1: music_num music_name{k} = music_read(k).name; [y_cell{k},Fs_cell{k}] = audioread(music_name{k});%读取歌曲
sound(y_cell{k},Fs_cell{k});%播放歌曲 music_info = audioinfo(music_name{k});%读取歌曲信息 pause(music_info.Duration);%每首歌的播放时间 end
这种方式的问题很大,程序一直占着matlab,没法干其他事情了。不好。但是实在是脑壳疼,不搞了,下次有时间在搞。
写这个主要是记录一下几个函数而已。。。。写的乱七八糟的自己看看。。