打印

基于matlab的音乐在线试听

[复制链接]
323|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cooldog123pp|  楼主 | 2021-5-25 23:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

各位matlabER,在MATLAB编程的同时,难道你还要重复打开QQMUSIC、百度音乐吗?

一个MATLAB函数帮你解决所有问题。
清除暂时请用wmp.close 如果无WMP,自动存为ans,即为ans.close


function wmp=music(songname)
%
%输出: wmp——COM.wmplayer_ocx组件对象
%
%输入:songname——歌曲名称
%
%示例:
%     music('好心分手');
%
%停止播放:wmp.close 如果无WMP,自动存为ans。
%
%  音量调节 wmp.setting.volume=10





clear wmp
clear ans
str=dec2hex(unicode2native(songname));
str=[repmat('%',size(str,1),1) str];
str=reshape(str',1,[]);
% str=songname
song_url=['http://mp3.baidu.com/m?f=ms&rf=idx&tn=baidump3&ct=134217728&lf=&rn=&word=',str,'&lm=-1'];
webfile_stream=urlread(song_url);
%filelist=regexp(webfile_stream,'http://box\.zhangmen\.baidu\.com/m\?word=mp3.{1,300}target','match');
music_page_url=regexp(webfile_stream,'http://mp3\.baidu\.com/d\?song=.{1,400} target="_blank" onclick="return ','match');
music_page_url;
if ~isempty(music_page_url)   
spc = strfind(music_page_url{1}, ' ')    ;
music_page_url{1}=[music_page_url{1}(1:spc-1) '%20'  music_page_url{1}(spc+1:end)];
music_page=urlread(music_page_url{1}(1:end-47));
else
%     wmp=nan;
    disp(['没有找到与《',songname,'》相关的歌曲']);
    return;
end



filelist=regexp(music_page,'a id="downlink" href=".{1,200}" onclick','match');  %22 ***** 1
fileurl=['http://mp3.baidu.com' filelist{1}(23:end-9)];
% http...... " target
    close all;
    figure('visible','off');
    disp(['作者:@王小川@matlab & @baby_wolf 新浪微博:http://weibo.com/hgsz2003/ ; http://weibo.com/n/%E8%9C%80%E5%B1%B1%E6%8E%8C%E9%97%A8V'])
    disp('歌曲连接成功');
    disp(['歌曲下载链接:', music_page_url{1}(1:end-46),'' ]);
%     disp(music_page_url{1}(1:end-46));
    clipboard('copy',fileurl);
   
   % fprintf('%s\n',song_url);
   % fprintf('%s\n',filelist{1}(1:end-8));
   % web=actxcontrol('shell.explorer.2',[0 0 400 400 ]);
   % web.Navigate(filelist{1}(1:end-8))
   % web(filelist{1}(1:end-8),'-browser');
   wmp=actxserver('wmplayer.ocx');
   wmp.url=fileurl;
%  wmp.setting.volume=10;
   disp(['当前的播放状态为:',wmp.status]);
   disp('停止播放请清除在变量空间清除COM.wmplayer_ocx,或者输入:名称.close');
   disp('如需要调整音量,请按照如下设置:名称.setting.volume=10');
   
   

end
% end


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1776

主题

6279

帖子

29

粉丝