xml - AS3-我正在尝试通过XML播放列表播放声音文件,但似乎无法正常工作

标签 xml actionscript-3 audio

我正在尝试通过XML播放列表播放声音文件,但似乎没有用。
我得到这个:错误#2044:未处理的IOErrorEvent :。 text =错误#2032:流错误。知道为什么吗?帮助非常感谢。

var soundURL:URLRequest;
var mySound:Sound = new Sound (); 
var mySoundChannel:SoundChannel = new SoundChannel();
var playing:Boolean = true;
var resumeTime:Number = 0;
var myCurrentSong:Number = 0;
var currentSong:int = 0;
var loadedXML:XML

var myXMLLoader:URLLoader = new URLLoader();
var myURL:URLRequest = new URLRequest("playList.xml");
myXMLLoader.load(myURL);

myXMLLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
loadedXML = XML(e.target.data);
soundURL = new URLRequest(loadedXML.songFile[currentSong].@songURL); 
mySound = new Sound(soundURL);
}

btnPlayPause.buttonMode = true;
btnStop.buttonMode = true;
btnNext.buttonMode = true;

btnPlayPause.addEventListener(MouseEvent.CLICK, playSound);
btnStop.addEventListener(MouseEvent.CLICK, stopSound);

function playSound(m:MouseEvent){
if (playing==true)
{
btnPlayPause.gotoAndStop("lbPause");
mySound.load(myURL);
mySoundChannel = mySound.play(resumeTime);
playing = false;
}
else
{
btnPlayPause.gotoAndStop("lbPlay");
resumeTime = mySoundChannel.position;
mySoundChannel.stop();
playing = true;
  }
}

function stopSound(f:MouseEvent):void
{
mySoundChannel.stop();
}

最佳答案

您很亲密,但是在设置跟踪网址时遇到了一个小问题。

如果您的XML文件看起来像这样

< ?xml version="1.0" encoding="UTF-8"?>

<MP3s>

    <songFile>


        <songURL> Apakalypse_Exist.mp3 </songURL>   


    </songFile>

</MP3s>

然后代码应该工作。查看function processXML的最后一行
var soundURL:URLRequest;
var mySound:Sound = new Sound (); 
var mySoundChannel:SoundChannel = new SoundChannel();
var playing:Boolean = true;
var resumeTime:Number = 0;
var myCurrentSong:Number = 0;
var currentSong:int = 0;
var loadedXML:XML;

var myXMLLoader:URLLoader = new URLLoader();
var myURL:URLRequest = new URLRequest("playList.xml");

////Setup... 
btnPlayPause.buttonMode = true;
btnStop.buttonMode = true;
btnNext.buttonMode = true;

btnPlayPause.addEventListener(MouseEvent.CLICK, playSound);
btnStop.addEventListener(MouseEvent.CLICK, stopSound);

myXMLLoader.load (myURL);
myXMLLoader.addEventListener(Event.COMPLETE, processXML);


//// Functions...
function processXML (e:Event):void 
{
    loadedXML = XML(e.target.data);
    //trace("loaded XML" + loadedXML); //for test only

    //soundURL = new URLRequest(loadedXML.songFile[currentSong].@songURL); 
    //mySound = new Sound(soundURL);

    mySound = new Sound(new URLRequest(loadedXML.songFile[currentSong].songURL));
}

function playSound (m:MouseEvent)
{
    if (playing==true)
    {
        btnPlayPause.gotoAndStop("lbPause");
        //mySound.load(myURL);
        mySoundChannel = mySound.play(resumeTime);
        playing = false;
    }
    else
    {
        btnPlayPause.gotoAndStop("lbPlay");
        resumeTime = mySoundChannel.position;
        mySoundChannel.stop();
        playing = true;
    }
}

function stopSound (f:MouseEvent):void
{
    mySoundChannel.stop();
}

关于xml - AS3-我正在尝试通过XML播放列表播放声音文件,但似乎无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24228065/

相关文章:

.net - .Net 中的 XSD 正则表达式模式导致应用程序挂起

java - 如何用JAVA解析flash cookies(.SOL文件)

actionscript-3 - as3中的动画 "blob"

android - 一个文件的声音?

audio - 关于音频直播应用的性能

Android Studio - 顶部的白色条

java - 您可以选择通过 JAXB 序列化类属性吗?

c# - 用于 MP3 编辑的音频库

iOS)我应该在哪里复制和粘贴 facebook XML 片段?

json - 如何在 Flex 3 中使用原生 JSON 或 actionjson 解码 Json