<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-193  評論-715  文章-1  trackbacks-0
    Recently, I had spent a lot of time on sound playback of Flash Player 10, but I can't slove a performance issue in none-ActiveX architecture. I will get stutter/machine gun sound when I load a heavy load web page at the same time in Firefox/Chrome/Safari. this case don't happen in IE, and I always get smooth sound.

    The root cause of this issue is used to extract method of Sound class for retract samples, and then play by extracted samples. You may ask me, why don't use play method of Sound class directly? I think I only answer you that it's business requirements.

    Following are my test code:
    package {
        
    import flash.events.Event;
        
    import flash.events.SampleDataEvent;
        
    import flash.media.Sound;
        
    import flash.net.URLRequest;
        
    import flash.system.System;
        
    import flash.utils.ByteArray;

        
    public class Extract {
            
    private var sourceSnd:Sound = new Sound();
            
    private var outputSnd:Sound = new Sound();
            
    private var urlReq:URLRequest = new URLRequest("11k.mp3"); //this file has 575 frames
            
    //        private var urlReq:URLRequest = new URLRequest("44k.mp3");  //this file has 1150 frames
            private var samplesCount:uint = 0;

            
    public function play():void {
                sourceSnd.load(urlReq);
                
    //            sourceSnd.play(); // if use source sound to playing, we will not be got machine gun sound.
                sourceSnd.addEventListener(Event.COMPLETE, loaded); //use this approach, we will be got stutter.
            }


            
    private function loaded(event:Event):void {
                outputSnd.addEventListener(SampleDataEvent.SAMPLE_DATA, processSound);
                outputSnd.play();
            }


            
    private function processSound(event:SampleDataEvent):void {
                var bytes:ByteArray 
    = new ByteArray();
                var samplesPerTime:uint 
    = sourceSnd.extract(bytes, 8192);
                samplesCount 
    += samplesPerTime;
                
    //            trace("samplesCount:" + samplesCount + ",samplesPerTime:" + samplesPerTime);
                event.data.writeBytes(bytes);
                
    //            flash.system.System.gc();
            }


        }

    }

    You can refer to following test steps for reproduce stutter/machine gun sound issue:
     
    1, Run/debug test application in Firefox, you will get smooth sound at once.
     
    2, Open a new tab in the same window, and open a heavy load web page (for example: http://www.taobao.com)
     
    3, You will get stutter when a heavy load page is loading.

    If you interest in this problem also, we can study it together.
    posted on 2010-03-05 12:15 Robin's Programming World 閱讀(1577) 評論(0)  編輯  收藏 所屬分類: Flex & Flash
    主站蜘蛛池模板: 亚洲综合日韩久久成人AV| 亚洲福利精品电影在线观看| 久久综合图区亚洲综合图区| 一级毛片免费播放男男| 亚洲精品国自产拍在线观看| 日韩在线观看免费完整版视频| 亚洲成A人片在线观看无码3D| 免费一区二区三区在线视频| 亚洲国产精品成人久久蜜臀| 中美日韩在线网免费毛片视频 | 黄色成人免费网站| 亚洲一区在线观看视频| 亚洲成在人线aⅴ免费毛片| 亚洲精品无码成人| 亚洲AⅤ无码一区二区三区在线 | 免费一级一片一毛片| 成人免费网站久久久| 亚洲AV午夜成人片| 一级女人18毛片免费| 亚洲av成本人无码网站| 亚洲人成影院在线观看| 国产午夜精品久久久久免费视| 亚洲视频免费播放| 国产免费人人看大香伊| 中文字幕在线免费看线人| 亚洲精品资源在线| 色播在线永久免费视频| 国产免费播放一区二区| 亚洲国产精品综合一区在线| 国产福利免费观看| 最好免费观看高清在线| 亚洲乱码一二三四区乱码| 亚洲国产精品无码久久九九| 久久国产免费一区二区三区| 亚洲性无码AV中文字幕| 国产成人高清亚洲| 国产又大又粗又长免费视频 | 亚洲成AV人片高潮喷水| 亚洲人成无码网站| 最新猫咪www免费人成| 成在线人视频免费视频|