2013-02-06 148 views
0

我想知道是否有人可以在適用於iOS和Android的AIR應用程序中嵌入,選擇和播放音頻文件的最佳方法提供一些信息。在AIR和iOS應用程序中播放MP3應用程序

我有一個應用程序,用戶可以從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無縫

感謝

回答

1

您該用戶選擇存儲陣列或矢量mp3文件的URL。並播放mp3文件結束。從Array,Vector中加載下一個URL。

var 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); 
} 
相關問題