簡體   English   中英

AS3 播放音頻並循環播放

[英]AS3 playing audio and looping it

我正在嘗試讓一個音頻文件在我的項目的后台播放,但到目前為止還沒有成功。 這是我到目前為止所得到的。

package  {

    import flash.display.*; 
    import flash.events.*; 
    import flash.net.*; 
    import flash.media.*; 

    public class Music extends MovieClip {

        // Create a sound
        private var music:Sound;

        // Use a URLRequest for file path
        private var request:URLRequest;

        // Create a sound buffer
        private var buffer:SoundLoaderContext;

        // Create a sound channel
        private var channel:SoundChannel;

        public function Music() {
            // constructor code
            //Instantiate all sound objects
            buffer = new SoundLoaderContext(1000);
            request = new URLRequest("SMB3-Grassland-Map.mp3");
            music = new Sound(request, buffer);

            // Play music and assign it to a channel
            channel = music.play();

            // Add an event listener to the channel
            channel.addEventListener(Event.SOUND_COMPLETE, loopMusic);
        }

        // playMusic method restarts music
        private function playMusic()
        {
            channel = music.play();
            channel.addEventListener(Event.SOUND_COMPLETE, loopMusic);
        }

        // Channel event listener call playMusic method
        private function loopMusic(e:Event)
        {
            if (channel != null)
            {
                channel.removeEventListener(Event.SOUND_COMPLETE, loopMusic);

                playMusic();
            }
        }

    }
}

這只是播放外部音頻文件並讓它不斷循環播放。

您可以將參數添加到.play()方法,而不是讓事件偵聽器在聲音完成時再次播放聲音。 第一個參數表示您希望它在聲音的哪個點開始播放,第二個參數表示您希望它播放多少次,如果您想應用聲音變換,則使用第三個參數。 在您的情況下,您可以執行.play(0, int.MAX_VALUE); 這將為您提供您正在尋找的連續循環。

“問題是它根本沒有播放任何東西。”

我復制了您的代碼並創建了一個 AS3 類文件(替換了我自己的本地 MP3 URL)然后創建了一個具有以下內容的 AS3 文件:

import Music;
var mus:Music = new Music();

並運行它。 聲音播放和循環正確。

它對我有用,所以也許這就是沒有錯誤的原因。 很抱歉這個問題,但您的揚聲器是否打開; 您的系統是否正在播放來自其他來源的聲音... cd、mp3 播放器?

我用過 play(0, 1000); @Goose 提到了,效果很好; 簡單有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM