每天学一点flash 76 百度MP3音乐APi接口使用

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

百度MP3音乐API接口及应用

http://cloud21.javaeye.com/blog/611914

 

 

这里有一篇关于百度MP3音乐APi接口的应用,写了一下关于这个百度接口的应用,他可以提供一小部分的搜索功能,将其使用在MP3搜索上还是有一点意思。只是提供的接口方式还是或多或少有一些缺陷。但是借助他能够使用在微博上还是挺有意思的,新浪微博在没有和官方合作的时候,这个搜索信息接口是不会提供的,只有合作的者才能使用到。 百度的搜索能力很强大,只是提供数据并不是对个人开放,因此只能借用这个小接口。

 

如上面作者所说的,既要歌曲名称 也要歌名,那么有我不记得歌手,那岂不是不能搜索。所以问题就在这里,搜索还是带来一点不方便性。

另外一个说法是,输入这两个关键字有利于定位,不过你需要记得歌手和歌曲名,返回的时间和是比较快的。

 

不过暂时使用也是可以的。

 

http://box.zhangmen.baidu.com/x?op=12&count=1&title=大约在冬季$$齐秦$$$$

 

 

利用这个接口,我们先改造一下

http://box.zhangmen.baidu.com/x?op=12&count=1&title=songName$$songAuthor$$$$

 

修改两个关键字,方便我们进行替换。

替换的时候使用字符串分割,以#号为标记进行区分。

这样就可以实现替换的目的,搜索的时候就可以换成想要的链接地址了。

[c-sharp] view plain copy print ?
  1. var infoArray:Array=info.split("#");  
  2.   
  3.  var newStr:String=searAPIURL.replace("songName",infoArray[0]);  
  4.    newStr= newStr.replace("songAuthor",infoArray[1]);  
var infoArray:Array=info.split("#"); var newStr:String=searAPIURL.replace("songName",infoArray[0]);   newStr= newStr.replace("songAuthor",infoArray[1]);

 

 替换的时候再把多余的空格去除,输入的时候就可以随意一些。

[c-sharp] view plain copy print ?
  1. //去除空白  
  2.             private function replacSpace(str:String):String  
  3.             {                 
  4.                 return str= str.replace(/(/s)*/gi , "");   
  5.                
  6.             }  
//去除空白   private function replacSpace(str:String):String   {        return str= str.replace(/(/s)*/gi , "");        }

 

 

远程调用这个接口 会返回一个小数量的歌曲链接,在这个时候进行拼接搜索时候的歌曲,由于我们只是需要mp3文件,那么对于的wma 和rm都不是我们需要的,因此在搜索返回结果的时候需要进行帅选,选择之后绑定一个数组里面进行绑定,我们希望得到歌词,同时的做法就是参考上一篇文章所说的做法 拼接lrc的地址,lrc的地址有可能会出现空的情况,所以制作的时候可以加一个条件进行选择。

[c-sharp] view plain copy print ?
  1. //裁剪mp3地址  
  2.             private function getSongAddress(url:String,songName:String):String  
  3.             {  
  4.                 var end:int=url.lastIndexOf("/",url.length - 1 );  
  5.                 return url.substring(0,end+1)+songName;  
  6.             }  
  7.               
  8.             //返回lrc 地址  
  9.             private function getLRC(url:String):String  
  10.             {                 
  11.                 return lrcURL+int(int(url)/100).toString()+"/"+url+".lrc";                
  12.             }  
  13.               
//裁剪mp3地址   private function getSongAddress(url:String,songName:String):String   {    var end:int=url.lastIndexOf("/",url.length - 1 );    return url.substring(0,end+1)+songName;   }      //返回lrc 地址   private function getLRC(url:String):String   {        return lrcURL+int(int(url)/100).toString()+"/"+url+".lrc";       }   

 

 

 调用该接口返回的是一个xml文件:

如:

[c-sharp] view plain copy print ?
  1. <?xml version="1.0" encoding="gb2312" ?>   
  2.  <result>  
  3.  <count>5</count>   
  4.  <url>  
  5.  <encode>http://zhangmenshiting.baidu.com/data/music/2322591/VndoWXZqXHloV3hrWnh4XXJoWHlqW3B7VnNrWXprXHBnV3R3WntsXXJ2WHVoZKSoZHGrl6SanHWTmJeamW1pcGZlamZoam9xZJVmaWWYa51imJlmZ25qazE$</encode>   
  6.  <decode>%E5%A4%A7%E7%BA%A6%E5%9C%A8%E5%86%AC%E5%AD%A3.mp3?xcode=bfdfd728537234893c350b4e1ff22833</decode>   
  7.  <type>1</type>   
  8.  <lrcid>14706</lrcid>   
  9.  </url>  
  10.  <url>  
  11.  <encode>http://individual.utoronto.ca/xmc84/fpOslpp~pY-aoKeZpzY$.mp3</encode>   
  12.  <decode>MaybeInWinter.mp3</decode>   
  13.  <type>1</type>   
  14.  <lrcid>14706</lrcid>   
  15.  </url>  
  16.  <url>  
  17.  <encode>http://vietnamese.cri.cn/mmsource/audio/2004/07/27/lZOsqZqwmKGVoaGbn583.rm</encode>   
  18.  <decode>dayuezaidongji.rm</decode>   
  19.  <type>2</type>   
  20.  <lrcid>14706</lrcid>   
  21.  </url>  
  22.  <url>  
  23.  <encode>http://cnc.ycycedu.com/music/5SUH8AkQ7eTt8DM$.mp3</encode>   
  24.  <decode>大约在冬季.mp3</decode>   
  25.  <type>1</type>   
  26.  <lrcid>14706</lrcid>   
  27.  </url>  
  28.  <url>  
  29.  <encode>http://120.35.4.23/data/mp3/VpRnWZtpXJxlV5WXWpprXZWTWJZrW5ibVpSWWZebNw$$.mp3</encode>   
  30.  <decode>%b4%f3%d4%bc%d4%da%b6%ac%bc%be.mp3</decode>   
  31.  <type>1</type>   
  32.  <lrcid>14706</lrcid>   
  33.  </url>  
  34.  <p2p>  
  35.  <hash>5babc209cd096f0a3529a3dc8f66754bc58d0e29</hash>   
  36.  </p2p>  
  37.  </result>  
<?xml version="1.0" encoding="gb2312" ?> - <result>  <count>5</count> - <url>  <encode>http://zhangmenshiting.baidu.com/data/music/2322591/VndoWXZqXHloV3hrWnh4XXJoWHlqW3B7VnNrWXprXHBnV3R3WntsXXJ2WHVoZKSoZHGrl6SanHWTmJeamW1pcGZlamZoam9xZJVmaWWYa51imJlmZ25qazE$</encode>   <decode>%E5%A4%A7%E7%BA%A6%E5%9C%A8%E5%86%AC%E5%AD%A3.mp3?xcode=bfdfd728537234893c350b4e1ff22833</decode>   <type>1</type>   <lrcid>14706</lrcid>   </url>- <url>  <encode>http://individual.utoronto.ca/xmc84/fpOslpp~pY-aoKeZpzY$.mp3</encode>   <decode>MaybeInWinter.mp3</decode>   <type>1</type>   <lrcid>14706</lrcid>   </url>- <url>  <encode>http://vietnamese.cri.cn/mmsource/audio/2004/07/27/lZOsqZqwmKGVoaGbn583.rm</encode>   <decode>dayuezaidongji.rm</decode>   <type>2</type>   <lrcid>14706</lrcid>   </url>- <url>  <encode>http://cnc.ycycedu.com/music/5SUH8AkQ7eTt8DM$.mp3</encode>   <decode>大约在冬季.mp3</decode>   <type>1</type>   <lrcid>14706</lrcid>   </url>- <url>  <encode>http://120.35.4.23/data/mp3/VpRnWZtpXJxlV5WXWpprXZWTWJZrW5ibVpSWWZebNw$$.mp3</encode>   <decode>%b4%f3%d4%bc%d4%da%b6%ac%bc%be.mp3</decode>   <type>1</type>   <lrcid>14706</lrcid>   </url>- <p2p>  <hash>5babc209cd096f0a3529a3dc8f66754bc58d0e29</hash>   </p2p>  </result>

 

 

利用xml的操作返回我们想要节点:

 

encode :歌曲地址路径

decode :歌曲名

type :类型

lrcid :lrc

返回的时候 需要进行 把encode 和

decode 节点数据  进行拼接,具体的方法 可以参考上面

http://cloud21.javaeye.com/blog/611914

这一篇文章介绍的方法。

 

 

 

 

基础的测试:

 

 

[c-sharp] view plain copy print ?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"   
  3.          xmlns:s="library://ns.adobe.com/flex/spark"   
  4.          xmlns:mx="library://ns.adobe.com/flex/mx" width="386" height="222" creationComplete="init()">  
  5.   
  6.     <s:TextInput id="msg"  text="爱与诚#古巨基" x="14" y="22" width="255"/>  
  7.     <s:Button x="296" y="23" label="搜索" click="searCh()"/>  
  8.     <s:Label x="14" y="52" text="说明:搜索的时候使用歌名# 歌手名 " color="0xff0000"/>  
  9.     <mx:DataGrid  id="dg" x="5" y="72" width="380">  
  10.         <mx:columns>  
  11.             <mx:DataGridColumn headerText="地址" width="250" dataField="address" editable="true">               
  12.             </mx:DataGridColumn>  
  13.             <mx:DataGridColumn headerText="动作">  
  14.                 <mx:itemRenderer>  
  15.                     <fx:Component>  
  16.                         <mx:LinkButton label="试听" width="20" height="12" click="this.parentDocument.playSong(event)"/>  
  17.                     </fx:Component>  
  18.                 </mx:itemRenderer>  
  19.             </mx:DataGridColumn>  
  20.             <mx:DataGridColumn  headerText="歌词" dataField="lrc">  
  21.                 <mx:itemRenderer>  
  22.                     <fx:Component>  
  23.                         <mx:LinkButton label="歌词" width="20" height="12" click="this.parentDocument.loadSongLRC(event)"/>  
  24.                     </fx:Component>  
  25.                 </mx:itemRenderer>  
  26.             </mx:DataGridColumn>        
  27.         </mx:columns>  
  28.     </mx:DataGrid>  
  29.     <s:Label x="252" y="52" id="alertMsg" text="" width="200" color="0xff0000"/>  
  30.       
  31.     <fx:Script>  
  32.         <!--[CDATA[  
  33.             import flash.events.Event;  
  34.             import flash.events.IOErrorEvent;  
  35.             import flash.events.KeyboardEvent;  
  36.             import flash.events.MouseEvent;  
  37.             import flash.events.ProgressEvent;  
  38.             import flash.media.Sound;  
  39.             import flash.media.SoundChannel;  
  40.             import flash.media.SoundLoaderContext;  
  41.             import flash.media.SoundMixer;  
  42.             import flash.net.*;  
  43.             import flash.ui.Keyboard;  
  44.             import flash.utils.ByteArray;  
  45.               
  46.             import mx.collections.ArrayCollection;  
  47.             import mx.controls.*;  
  48.             import mx.controls.dataGridClasses.DataGridColumn;  
  49.             import mx.core.UIComponent;  
  50.               
  51.             import spark.components.Window;  
  52.               
  53.             private var searAPIURL:String="http://box.zhangmen.baidu.com/x?op=12&count=1&title=songName$$songAuthor$$$$";  
  54.             private var lrcURL:String="http://box.zhangmen.baidu.com/bdlrc/";//lrc  
  55.             private var loader:URLLoader;     
  56.               
  57.             [Bindable]    
  58.             private var songList:ArrayCollection=new ArrayCollection();  
  59.           
  60.             private var sound:Sound;      
  61.             private var soundChannel:SoundChannel=new SoundChannel();     
  62.             private function searCh():void  
  63.             {  
  64.                 if(msg.text==""return;  
  65.                 songList.removeAll();  
  66.                 var info:String= replacSpace(msg.text);        
  67.                 var infoArray:Array=info.split("#");  
  68.                 var newStr:String=searAPIURL.replace("songName",infoArray[0]);  
  69.                 newStr= newStr.replace("songAuthor",infoArray[1]);  
  70.                 loader.load(new URLRequest(newStr));              
  71.             }  
  72.               
  73.             //去除空白  
  74.             private function replacSpace(str:String):String  
  75.             {                 
  76.                 return str= str.replace(/(/s)*/gi , "");   
  77.                
  78.             }  
  79.                           
  80.             //爱与诚#古巨基         
  81.             private function init():void  
  82.             {  
  83.                 loader=new URLLoader();  
  84.                 loader.addEventListener(Event.COMPLETE,onData);  
  85.                 msg.setFocus();  
  86.                 addEventListener(KeyboardEvent.KEY_DOWN,onKeyDownHandler);  
  87.                 this.addEventListener(Event.REMOVED_FROM_STAGE,onRemoveSelf);  
  88.                   
  89.             }  
  90.             private function onRemoveSelf(event:Event):void  
  91.             {  
  92.                 removeEventListener(Event.REMOVED_FROM_STAGE,onRemoveSelf);  
  93.                 removeEventListener(KeyboardEvent.KEY_DOWN,onKeyDownHandler);  
  94.                 loader=null;  
  95.             }  
  96.               
  97.               
  98.             private function onKeyDownHandler(event:KeyboardEvent):void  
  99.             {  
  100.                 if(event.keyCode==Keyboard.ENTER)  
  101.                 {  
  102.                     searCh();  
  103.                 }  
  104.             }  
  105.               
  106.             private function onData(event:Event):void  
  107.             {  
  108.                 var xml:XML=XML(loader.data);  
  109.                 trace(xml);  
  110.                 var count:int=int(xml.count);  
  111.                 for(var i:int=0;i<count;i++)  
  112.                 {  
  113.                     if(xml.url[i].type.toString()=="1")  
  114.                     {  
  115.                         var songUrl:String=getSongAddress(xml.url[i].encode,xml.url[i].decode);  
  116.                         var lrcURl:String=getLRC(xml.url[i].lrcid);//加载的lrc有可能不存在的情况  
  117.                         var item:Object={address:songUrl,lrc:lrcURl};  
  118.                         songList.addItem(item);                       
  119.                     }                                 
  120.                 }                 
  121.                 dg.dataProvider=songList;             
  122.             }  
  123.               
  124.             //裁剪mp3地址  
  125.             private function getSongAddress(url:String,songName:String):String  
  126.             {  
  127.                 var end:int=url.lastIndexOf("/",url.length - 1 );  
  128.                 return url.substring(0,end+1)+songName;  
  129.             }  
  130.               
  131.             //返回lrc 地址  
  132.             private function getLRC(url:String):String  
  133.             {                 
  134.                 return lrcURL+int(int(url)/100).toString()+"/"+url+".lrc";                
  135.             }  
  136.               
  137.               
  138.             //播放声音  
  139.             public function playSong(event:MouseEvent):void  
  140.             {  
  141.                 var url:String=event.currentTarget.parentDocument.dg.selectedItem.address;             
  142.                 SoundMixer.stopAll();                 
  143.                 loadSong(url);                    
  144.             }  
  145.                
  146.             //查看歌词  
  147.             public function loadSongLRC(event:MouseEvent):void  
  148.             {  
  149.                 var url:String=event.currentTarget.parentDocument.dg.selectedItem.lrc;  
  150.                 //trace(url);  
  151.                 var loader:URLLoader=new URLLoader();  
  152.                 loader.dataFormat=URLLoaderDataFormat.BINARY;  
  153.                 loader.addEventListener(Event.COMPLETE,onLoadLRCCompleteHandler);  
  154.                 loader.addEventListener(IOErrorEvent.IO_ERROR,onLoadLRcErrorHandler);  
  155.                 loader.load(new  URLRequest(url));                
  156.             }  
  157.               
  158.             private function onLoadLRCCompleteHandler(event:Event):void  
  159.             {  
  160.                 event.currentTarget.removeEventListener(Event.COMPLETE,onLoadLRCCompleteHandler);  
  161.                 event.currentTarget.removeEventListener(IOErrorEvent.IO_ERROR,onLoadLRcErrorHandler);  
  162.                 var bytes:ByteArray=ByteArray(event.currentTarget.data);                  
  163.                 var stringLength:int = bytes.bytesAvailable;                  
  164.                 var outputStr:String =bytes.readMultiByte( stringLength, "gb2312" );                       
  165.                 trace(outputStr);  
  166.             }  
  167.               
  168.             private function onLoadLRcErrorHandler(event:IOErrorEvent):void  
  169.             {         
  170.                 alertMsg.text="加载失败";                 
  171.             }  
  172.               
  173.             //加载歌曲  
  174.             private function loadSong(url:String):void  
  175.             {  
  176.                 if(sound!=null)  
  177.                 {  
  178.                     soundChannel.stop();  
  179.                     sound=null;   
  180.                 }  
  181.                 sound=new Sound(null,new SoundLoaderContext(2000));  
  182.                 sound.addEventListener(Event.COMPLETE,loadSongComplete);  
  183.                 sound.addEventListener(IOErrorEvent.IO_ERROR,onLoadError);  
  184.                 sound.addEventListener(ProgressEvent.PROGRESS,onLoadProgress);  
  185.                 sound.load(new URLRequest(url));  
  186.                 alertMsg.text="正在加载";  
  187.                   
  188.             }  
  189.             private function onLoadError(event:Event):void  
  190.             {  
  191.                 alertMsg.text="加载失败";  
  192.             }  
  193.               
  194.             private function onLoadProgress(event:ProgressEvent):void  
  195.             {  
  196.                 alertMsg.text="正在加载"+int(event.bytesLoaded/event.bytesTotal*100).toString()+"/%";  
  197.             }  
  198.               
  199.             private function loadSongComplete(event:Event):void  
  200.             {  
  201.                 event.currentTarget.removeEventListener(Event.COMPLETE,loadSongComplete);  
  202.                 soundChannel=event.currentTarget.play();  
  203.                 alertMsg.text="加载成功";  
  204.             }  
  205.                   
  206.         ]]-->  
  207.     </fx:Script>  
  208. </s:Group>  
<?xml version="1.0" encoding="utf-8"?><s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"    xmlns:s="library://ns.adobe.com/flex/spark"    xmlns:mx="library://ns.adobe.com/flex/mx" width="386" height="222" creationComplete="init()"> <s:TextInput id="msg"  text="爱与诚#古巨基" x="14" y="22" width="255"/> <s:Button x="296" y="23" label="搜索" click="searCh()"/> <s:Label x="14" y="52" text="说明:搜索的时候使用歌名# 歌手名 " color="0xff0000"/> <mx:DataGrid  id="dg" x="5" y="72" width="380">  <mx:columns>   <mx:DataGridColumn headerText="地址" width="250" dataField="address" editable="true">        </mx:DataGridColumn>   <mx:DataGridColumn headerText="动作">    <mx:itemRenderer>     <fx:Component>      <mx:LinkButton label="试听" width="20" height="12" click="this.parentDocument.playSong(event)"/>     </fx:Component>    </mx:itemRenderer>   </mx:DataGridColumn>   <mx:DataGridColumn  headerText="歌词" dataField="lrc">    <mx:itemRenderer>     <fx:Component>      <mx:LinkButton label="歌词" width="20" height="12" click="this.parentDocument.loadSongLRC(event)"/>     </fx:Component>    </mx:itemRenderer>   </mx:DataGridColumn>    </mx:columns> </mx:DataGrid> <s:Label x="252" y="52" id="alertMsg" text="" width="200" color="0xff0000"/>  <fx:Script>  <!--[CDATA[   import flash.events.Event;   import flash.events.IOErrorEvent;   import flash.events.KeyboardEvent;   import flash.events.MouseEvent;   import flash.events.ProgressEvent;   import flash.media.Sound;   import flash.media.SoundChannel;   import flash.media.SoundLoaderContext;   import flash.media.SoundMixer;   import flash.net.*;   import flash.ui.Keyboard;   import flash.utils.ByteArray;      import mx.collections.ArrayCollection;   import mx.controls.*;   import mx.controls.dataGridClasses.DataGridColumn;   import mx.core.UIComponent;      import spark.components.Window;      private var searAPIURL:String="http://box.zhangmen.baidu.com/x?op=12&count=1&title=songName$$songAuthor$$$$";   private var lrcURL:String="http://box.zhangmen.baidu.com/bdlrc/";//lrc   private var loader:URLLoader;       [Bindable]    private var songList:ArrayCollection=new ArrayCollection();     private var sound:Sound;    private var soundChannel:SoundChannel=new SoundChannel();    private function searCh():void   {    if(msg.text=="") return;    songList.removeAll();    var info:String= replacSpace(msg.text);       var infoArray:Array=info.split("#");    var newStr:String=searAPIURL.replace("songName",infoArray[0]);    newStr= newStr.replace("songAuthor",infoArray[1]);    loader.load(new URLRequest(newStr));      }      //去除空白   private function replacSpace(str:String):String   {        return str= str.replace(/(/s)*/gi , "");        }         //爱与诚#古巨基     private function init():void   {    loader=new URLLoader();    loader.addEventListener(Event.COMPLETE,onData);    msg.setFocus();    addEventListener(KeyboardEvent.KEY_DOWN,onKeyDownHandler);    this.addEventListener(Event.REMOVED_FROM_STAGE,onRemoveSelf);       }   private function onRemoveSelf(event:Event):void   {    removeEventListener(Event.REMOVED_FROM_STAGE,onRemoveSelf);    removeEventListener(KeyboardEvent.KEY_DOWN,onKeyDownHandler);    loader=null;   }         private function onKeyDownHandler(event:KeyboardEvent):void   {    if(event.keyCode==Keyboard.ENTER)    {     searCh();    }   }      private function onData(event:Event):void   {    var xml:XML=XML(loader.data);    trace(xml);    var count:int=int(xml.count);    for(var i:int=0;i<count;i++)    {     if(xml.url[i].type.toString()=="1")     {      var songUrl:String=getSongAddress(xml.url[i].encode,xml.url[i].decode);      var lrcURl:String=getLRC(xml.url[i].lrcid);//加载的lrc有可能不存在的情况      var item:Object={address:songUrl,lrc:lrcURl};      songList.addItem(item);           }            }        dg.dataProvider=songList;      }      //裁剪mp3地址   private function getSongAddress(url:String,songName:String):String   {    var end:int=url.lastIndexOf("/",url.length - 1 );    return url.substring(0,end+1)+songName;   }      //返回lrc 地址   private function getLRC(url:String):String   {        return lrcURL+int(int(url)/100).toString()+"/"+url+".lrc";       }         //播放声音   public function playSong(event:MouseEvent):void   {    var url:String=event.currentTarget.parentDocument.dg.selectedItem.address;        SoundMixer.stopAll();        loadSong(url);           }       //查看歌词   public function loadSongLRC(event:MouseEvent):void   {    var url:String=event.currentTarget.parentDocument.dg.selectedItem.lrc;    //trace(url);    var loader:URLLoader=new URLLoader();    loader.dataFormat=URLLoaderDataFormat.BINARY;    loader.addEventListener(Event.COMPLETE,onLoadLRCCompleteHandler);    loader.addEventListener(IOErrorEvent.IO_ERROR,onLoadLRcErrorHandler);    loader.load(new  URLRequest(url));       }      private function onLoadLRCCompleteHandler(event:Event):void   {    event.currentTarget.removeEventListener(Event.COMPLETE,onLoadLRCCompleteHandler);    event.currentTarget.removeEventListener(IOErrorEvent.IO_ERROR,onLoadLRcErrorHandler);    var bytes:ByteArray=ByteArray(event.currentTarget.data);        var stringLength:int = bytes.bytesAvailable;        var outputStr:String =bytes.readMultiByte( stringLength, "gb2312" );          trace(outputStr);   }      private function onLoadLRcErrorHandler(event:IOErrorEvent):void   {      alertMsg.text="加载失败";       }      //加载歌曲   private function loadSong(url:String):void   {    if(sound!=null)    {     soundChannel.stop();     sound=null;     }    sound=new Sound(null,new SoundLoaderContext(2000));    sound.addEventListener(Event.COMPLETE,loadSongComplete);    sound.addEventListener(IOErrorEvent.IO_ERROR,onLoadError);    sound.addEventListener(ProgressEvent.PROGRESS,onLoadProgress);    sound.load(new URLRequest(url));    alertMsg.text="正在加载";       }   private function onLoadError(event:Event):void   {    alertMsg.text="加载失败";   }      private function onLoadProgress(event:ProgressEvent):void   {    alertMsg.text="正在加载"+int(event.bytesLoaded/event.bytesTotal*100).toString()+"/%";   }      private function loadSongComplete(event:Event):void   {    event.currentTarget.removeEventListener(Event.COMPLETE,loadSongComplete);    soundChannel=event.currentTarget.play();    alertMsg.text="加载成功";   }      ]]--> </fx:Script></s:Group>

 

 

 创建一个air的程序,然后把运行一下这个文件。

 

[c-sharp] view plain copy print ?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"   
  3.                        xmlns:s="library://ns.adobe.com/flex/spark"   
  4.                        xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:ns1="*">  
  5.     <fx:Declarations>  
  6.         <!-- Place non-visual elements (e.g., services, value objects) here -->  
  7.     </fx:Declarations>  
  8.     <ns1:Mp3Serch x="0" y="77">  
  9.     </ns1:Mp3Serch>  
  10.       
  11.       
  12.    
  13. </s:WindowedApplication>  
<?xml version="1.0" encoding="utf-8"?><s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"         xmlns:s="library://ns.adobe.com/flex/spark"         xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:ns1="*"> <fx:Declarations>  <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <ns1:Mp3Serch x="0" y="77"> </ns1:Mp3Serch>   </s:WindowedApplication>

 

 

   编辑之后,可以加以进行这个实现,丰富搜索回来的数据使用。

经过整合到微博客户端里面去就可以实现分享歌曲,查看歌词的操作。

 

 

 

 

 

 

 

 

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值