2013-08-06 1 views
0

Я хочу, чтобы иметь возможность PAN стереозвука FLV-файла. Якобы, так что я могу играть на одном из двух языков (правый канал или левый канал), когда проигрывается flv. Я «играл» со звуковым микшером и не могу заставить его работать с FLV.Как PAN (изменить звуковой баланс) стереоканал FLV-файла

Могу ли я использовать soundmixer с видеопроигрывателем, и если да, может ли кто-нибудь исправить мой (ниже) код?

TIA, Phil.

<?xml version="1.0" encoding="utf-8"?> 
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
xmlns:s="library://ns.adobe.com/flex/spark" title="HomeView"> 

    <fx:Declarations> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 

    <fx:Script> 
     <![CDATA[ 

      protected function myVideo():void 
      {    
       var soundMixer:SoundTransform = new SoundTransform(); 
       soundMixer.pan = 1; 
       myVid.soundTransform = soundMixer; 

       myVid.play(); 
      } 

     ]]> 
    </fx:Script> 

    <s:VGroup width="100%" height="100%"> 
     <s:Button id="playVideo" label="Video" click="myVideo()"/> 

     <s:VideoPlayer id="myVid" 
         source="assets/caroLang.flv" 
         volume="1.0" 
         width="50%" height="50%" 
         autoPlay="false" 
         autoDisplayFirstFrame="true" 
         scaleMode="letterbox" 
         /> 
    </s:VGroup> 
</s:View> 
+0

Посмотрите на 'soundTransform'. – putvande

ответ

0

Решил изменить привязку и использовать несколько mp3-файлов (по одному для каждого языка) с воспроизведением видео, в котором нет звука.

Я тестирую переменную selectLang и воспроизвожу разные mp3-файлы в зависимости от значения.

Запустите процесс, нажав кнопку видео, вы можете остановить, приостановить или использовать панель скруббера, чтобы переместить видео и mp3 в соответствующее синхронизированное положение.

<?xml version="1.0" encoding="utf-8"?> 
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" title="HomeView" 
    creationComplete="view1_creationCompleteHandler(event)"> 
<fx:Declarations> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 
</fx:Declarations> 

<fx:Script> 
    <![CDATA[ 
     import mx.core.SoundAsset; 
     import mx.events.FlexEvent; 

     import spark.components.mediaClasses.ScrubBar; 

     import org.osmf.events.MediaPlayerStateChangeEvent; 
     import org.osmf.events.TimeEvent; 
     import org.osmf.traits.PlayState; 

     private var seletedLang:String = "EN"; 

     public var loadedFile:File; 
     public var channel:SoundChannel; 
     public var songEN:SoundAsset; 
     public var songPT:SoundAsset;   
     private var currentVidTime:Number = 0; 


     protected functio view1_creationCompleteHandler(event:FlexEvent):void 
     { 
      songEN = new SoundAsset(); 
      songEN.load(new URLRequest("assets/caro.mp3")); 

      songPT = new SoundAsset(); 
      songPT.load(new URLRequest("assets/caro.mp3")); 

      myVid.addEventListener(TimeEvent.CURRENT_TIME_CHANGE, scrubBarChange); 
     } 

     protected function scrubBarChange(event:TimeEvent):void 
     { 
      currentVidTime = event.time; 
     } 

     protected function myVideo():void 
     {         
      if(seletedLang == "EN") 
      { 
       channel = songEN.play(currentVidTime*1000); 
      } 
      else 
      { 
       channel = songPT.play(currentVidTime*1000); 
      } 

      myVid.play(); 

     } 

     protected function myVid_mediaPlayerStateChangeHandler(event:MediaPlayerStateChangeEvent):void 
     { 
      trace(event.state); 

      if(event.state == "playing") 
      { 
       if(seletedLang == "EN") 
       { 
        trace("**** " + currentVidTime); 
        if (channel != null) channel = songEN.play(currentVidTime*1000); 
       } 
       else if (seletedLang == "PT") 
       { 
        if (channel != null) channel = songPT.play(currentVidTime*1000); 
       } 
      } 
      else if(event.state == "paused") 
      { 

       if (channel != null) SoundMixer.stopAll(); 
      } 
     } 


    ]]> 
</fx:Script> 

<s:VGroup width="100%" height="100%"> 
    <s:Button id="playVideo" label="Video" click="myVideo()"/> 

    <s:VideoPlayer id="myVid" 
        source="assets/caroMute.flv" 
        volume="0.0" 
        width="50%" height="50%" 
        autoPlay="false" 
        autoDisplayFirstFrame="true" 
        scaleMode="letterbox" 
        mediaPlayerStateChange="myVid_mediaPlayerStateChangeHandler(event)" 
        /> 
</s:VGroup> 
</s:View> 

 Смежные вопросы

  • Нет связанных вопросов^_^