基于matlab的音乐在线试听

[复制链接]
 楼主| cooldog123pp 发表于 2021-5-25 23:06 | 显示全部楼层 |阅读模式

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

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


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





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



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

  57. end
  58. % end


您需要登录后才可以回帖 登录 | 注册

本版积分规则

2224

主题

7469

帖子

31

粉丝
快速回复 在线客服 返回列表 返回顶部