我想知道是否有人可以在为iOS和Android构建的AIR应用中嵌入,选择和播放音频文件的最佳方法?
我有一个应用程序,用户可以从10个音频文件列表中选择要播放的文件。当滑块向左或向右移动时,会选择这些。
我目前会创建10个单独的嵌入代码段和类
[Embed(source="assets/audio/file1.mp3)]
public static const file1:Class;
[Embed(source="assets/audio/file2.mp3)]
public static const file2:Class;
...
然后在应用程序中初始化每个类,以便我可以引用它们。然后简单地调用
file1.play();
问题是,只有当我希望声音看起来直到用户选择另一种声音时才会播放声音。
我猜几个问题: 1.有10个嵌入/类是处理10个不同MP3文件的最佳方法吗? 2.如何无缝循环播放MP3
由于
答案 0 :(得分:1)
您存储了用户选择的Array或Vector mp3文件的URL。并播放mp3提交结束。从Array,Vector。
加载下一个URLvar sound:Sound = new Sound();
var soundChannel:SoundChannel;
var currentIndex:int = 0;
var mp3List:Vector.<String> = new Vector.<String>();
//only stored user selected mp3 url
sound.addEventListener(Event.COMPLETE, onMp3LoadComplete);
sound.load(mp3List[currentIndex]);
function onMp3LoadComplete(e:Event):void
{
sound.removeEventListener(Event.COMPLETE, onMp3LoadComplete);
soundChannel = sound.play();
soundChannel.addEventListener(Event.SOUND_COMPLETE, onSoundChannelSoundComplete);
}
function onSoundChannelSoundComplete(e:Event):void
{
e.currentTarget.removeEventListener(Event.SOUND_COMPLETE, onSoundChannelSoundComplete);
currentIndex++;
if(currentIndex==mp3List.length) currentIndex = 0;
sound.load(mp3List[currentIndex]);
soundChannel = sound.play();
sound.addEventListener(Event.COMPLETE, onMp3LoadComplete);
}