Quantcast
Channel: Adobe Community : Discussion List - Using Flash Builder
Viewing all articles
Browse latest Browse all 1802

Using "Microsoft Smooth Streaming Plugin for OSMF" No sound on Android devices.

$
0
0

When I create "Action Script Mobile Project" I don't have any problem.

But when I create "Flex Mobile project" with same code - It works fine on PC, but I don't have any sound when I copy and install apk file on Android devices (no problems with video)

 

Notes:

     "Microsoft Smooth Streaming Plugin for OSMF" needs osmf2.0 so osmf.swc ver2.0 have to be added to references.

 

Some test page:

 

<?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="Actus" xmlns:mx="library://ns.adobe.com/flex/mx">

 

          <fx:Script>

                    <![CDATA[

                              import com.microsoft.azure.media.AdaptiveStreamingPluginInfo;

 

                              import org.osmf.containers.MediaContainer;

                              import org.osmf.events.MediaErrorEvent;

                              import org.osmf.events.MediaFactoryEvent;

                              import org.osmf.events.MediaPlayerStateChangeEvent;

                              import org.osmf.layout.ScaleMode;

                              import org.osmf.media.DefaultMediaFactory;

                              import org.osmf.media.MediaElement;

                              import org.osmf.media.MediaPlayerSprite;

                              import org.osmf.media.MediaPlayerState;

                              import org.osmf.media.MediaResourceBase;

                              import org.osmf.media.PluginInfoResource;

                              import org.osmf.media.URLResource;

                              import org.osmf.traits.AudioTrait;

                              import org.osmf.traits.MediaTraitType;

 

 

 

                              public var _container:MediaContainer;

                              public var _mediaFactory:DefaultMediaFactory;

                              private var _mediaPlayerSprite:MediaPlayerSprite;

 

                              public function TestPlayer():void

                              {

                                        stage.quality = StageQuality.HIGH;

                                        initMediaPlayer();

                              }

                              private function initMediaPlayer():void

                              {

                                        // Create the container (sprite) for managing display and layout

                                        _mediaPlayerSprite = new MediaPlayerSprite();

                                        _mediaPlayerSprite.addEventListener(MediaErrorEve nt.MEDIA_ERROR,

                                                  onPlayerFailed);

                                        _mediaPlayerSprite.addEventListener(MediaPlayerSt ateChangeEvent.MEDIA_PLAYER_STATE_CHANGE

                                                  , onPlayerStateChange);

                                        _mediaPlayerSprite.scaleMode = ScaleMode.STRETCH;//ScaleMode.NONE;

                                        _mediaPlayerSprite.width = 400;//stage.stageWidth;

                                        _mediaPlayerSprite.height = 200//stage.stageHeight;

                                        //Adds the container to the stage

                                        videoContainer.addChild(_mediaPlayerSprite);

                                        // Create a mediafactory instance

                                        _mediaFactory = new DefaultMediaFactory();

                                        // Add the listeners for PLUGIN_LOADING

                                        _mediaFactory.addEventListener(MediaFactoryEvent. PLUGIN_LOAD,onPluginLoaded);

                                        _mediaFactory.addEventListener(MediaFactoryEvent. PLUGIN_LOAD_ERROR,

                                                  onPluginLoadFailed );

 

                                        //_mediaPlayerSprite.buttonMode=false;

                                        //_mediaPlayerSprite.mediaPlayer.muted=false;

                                        //_mediaPlayerSprite.mediaPlayer.volume=1;

 

                                        // Load the plugin class

                                        loadAdaptiveStreamingPlugin( );

                              }

                              private function loadAdaptiveStreamingPlugin( ):void

                              {

                                        var pluginResource:MediaResourceBase;

                                        pluginResource = new PluginInfoResource(new AdaptiveStreamingPluginInfo(

                                        ));

                                        _mediaFactory.loadPlugin( pluginResource );

                              }

                              private function onPluginLoaded( event:MediaFactoryEvent ):void

                              {

                                        // The plugin is loaded successfully.

                                        // Your web server needs to host a valid crossdomain.xml file to allow plugin to

                                        //download Smooth Streaming files.

 

                                        loadMediaSource(urlBak/*fileURL.text*//*"http://devplatem.vo.msecnd.net/Sintel/Sintel_H264.ism/manifest"*/)

                              }

                              private function onPluginLoadFailed( event:MediaFactoryEvent ):void

                              {

                                        // The plugin is failed to load ...

                              }

                              private function onPlayerStateChange(event:MediaPlayerStateChangeEvent) : void

                              {

                                        var state:String;

                                        state = event.state;

                                        switch (state)

                                        {

                                                  case MediaPlayerState.LOADING:

                                                            // A new source is started to load.

                                                            break;

                                                  case MediaPlayerState.READY :

                                                            // Add code to deal with Player Ready when it is hit the

                                                            //first load after a source is loaded.

                                                            break;

                                                  case MediaPlayerState.BUFFERING :

                                                            break;

                                                  case MediaPlayerState.PAUSED :

                                                            break;

                                                  // other states ...

                                        }

                              }

                              private function onPlayerFailed(event:MediaErrorEvent) : void

                              {

                                        // Media Player is failed .

                              }

                              private function loadMediaSource(sourceURL : String):void

                              {

                                        // Take an URL of SmoothStreamingSource’s manifest and add it to the page.

                                        var resource:URLResource= new URLResource(sourceURL);

                                        var element:MediaElement = _mediaFactory.createMediaElement( resource );

 

                                        _mediaPlayerSprite.scaleMode = ScaleMode.STRETCH;//ScaleMode.LETTERBOX;

                                        _mediaPlayerSprite.width = 400;//stage.stageWidth;

                                        _mediaPlayerSprite.height = 200;//stage.stageHeight;

                                        // Add the media element

                                        _mediaPlayerSprite.media = element;

 

                                        //_mediaPlayerSprite.buttonMode=false;

                                        //_mediaPlayerSprite.mediaPlayer.muted=false;

                                        //_mediaPlayerSprite.mediaPlayer.volume=5;

                                        test.text=_mediaPlayerSprite.mediaPlayer.volume.t oString()+_mediaPlayerSprite.mediaPlayer.muted.toString();

 

                              }

 

 

                              public var urlBak:String;

 

 

                              //---------------------------------------------------- --

                              protected function goToFileViewerFile(event:MouseEvent):void

                              {

                                        //var pluginResource:MediaResourceBase;

                                        //pluginResource = new PluginInfoResource(new AdaptiveStreamingPluginInfo());

                                        urlBak=fileURLfile.text;

                                        TestPlayer();

                                        //navigator.pushView(views.FileViewer);

                              }

                              //---------------------------------------------------- -------

                    ]]>

          </fx:Script>

 

          <fx:Declarations>

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

          </fx:Declarations>

          <s:Group>

                    <s:layout>

                              <s:VerticalLayout/>

                    </s:layout>

 

                    <s:Group>

                              <s:layout>

                                        <s:HorizontalLayout/>

                              </s:layout>

 

 

                              <s:Button label="File" click="goToFileViewerFile(event)" />

                              <s:TextInput id="fileURLfile" text="http://devplatem.vo.msecnd.net/Sintel/Sintel_H264.ism/Manifest" />

                    </s:Group>

 

                    <s:TextInput id="test" />

                              <mx:UIComponent  id="videoContainer" height="200" width="400" />

 

          </s:Group>

 

 

</s:View>


Viewing all articles
Browse latest Browse all 1802

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>