flex在线mp3播放器(一)通过webservice 与服务器通讯,获取mp3列表

来源:互联网 发布:centos jdk1.8 rpm 编辑:程序博客网 时间:2024/04/30 13:44

 

这是我的第一篇博克,呵呵。

在网络上播放mp3的时候首先要获取mp3列表,有几种方法来和服务器通讯,这里选择用webservice.服务器端用.net。

1。服务器端,C#代码: 

     新建一个服务:

        [WebMethod]
       public string getMusicList()
        {  

           StringBuilder musicXmlList=new StringBuilder();
            musicXmlList.Append("<MUSIC>");
           string[] musicList;
           musicList = System.IO.Directory.GetFiles(@"E:/music");
            string s;
           for (int i = 0; i < musicList.Length; i++)
          {
            s=musicList[i].Substring(musicList[i].LastIndexOf('//')+1);
            musicXmlList.Append("<name>");
            musicXmlList.Append(s);
            musicXmlList.Append("</name>");
          }
          musicXmlList.Append("</MUSIC>");
          return musicXmlList.ToString();

    }

 

2:flex 代码:

 

package com.lly
{
 /**
  *
  * @author Luolingyun
  *
  */  
 import flash.events.EventDispatcher;
 
 import mx.controls.Alert;
 import mx.rpc.AbstractOperation;
 import mx.rpc.events.FaultEvent;
 import mx.rpc.events.ResultEvent;
 import mx.rpc.soap.WebService;
 /**
  *通过webservice获取文件地址
  *
  */
 public class ClsMusic extends EventDispatcher
 {
 
  private var ws:WebService; 
  public var _op:AbstractOperation;
  private var _msg:String;//错误信息
  private var musicList:XMLList;
  public function get MusicList():XMLList
  {
    return  musicList;
  }
  public function ClsMusic()
  { 
  
   getMusicList();
  }
  /*************************
   * 获取webservice
   * */
  public function getWebservice():void
  {
       var url:String="http://192.168.1.17:7788/DataAccess.asmx?wsdl";
                if(ws==null)
             { 
                ws=new WebService();
                ws.loadWSDL(url);
             }
  }
  /***************************
   * 获取mp3列表
   * */
  public function getMusicList():void
  {
    getWebservice();
    _op=new AbstractOperation();
    _op = ws.getOperation("getMusicList");
    _op.addEventListener(ResultEvent.RESULT,getResult);
       _op.addEventListener(FaultEvent.FAULT, getFault);
    _op.send();  
  }
  /**
   *
   * @param evt
   *
   */
  private function getResult(evt:ResultEvent):void
  {
    var xml:XML;
    var xmlString:String;
    var muInfoEvent:MusicListEvent
       xml=new XML(evt.result);
       xmlString=xml;
       musicList=new XMLList(xmlString);
       muInfoEvent=new MusicListEvent(MusicListEvent.MUSIC);
       muInfoEvent.musicList=musicList;
       this.dispatchEvent(muInfoEvent);
       _op.removeEventListener(ResultEvent.RESULT,getResult);
  }
  private function getFault(evt:FaultEvent):void
  {
      _msg=evt.fault.faultDetail;
   Alert.show(_msg);
         //监听之后删除,避免重复监听
         _op.removeEventListener(FaultEvent.FAULT, getFault);
  } 
 }
}

原创粉丝点击