[
https://issues.apache.org/jira/browse/FLEX-34437?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Mclean updated FLEX-34437:
---------------------------------
Labels: easytest flex osmf video videodisplay (was: flex osmf video
videodisplay)
> Underlying Components of Spark:VideoDisplay control enter invalid state after
> losing focus
> ------------------------------------------------------------------------------------------
>
> Key: FLEX-34437
> URL: https://issues.apache.org/jira/browse/FLEX-34437
> Project: Apache Flex
> Issue Type: Bug
> Components: Spark: VideoPlayer
> Affects Versions: Apache Flex 4.12.0, Apache Flex 4.13.0, Apache Flex
> 4.12.1
> Environment: Windows 8.1 x64 8GB I7 IntelliJ, Flex 4.12.1
> Mac OS X 10.9, 4GB I5 Intellij Flex 4.12.1
> Reporter: Quinn Buchanan
> Labels: easytest, flex, osmf, video, videodisplay
>
> When using the spark:VideoDisplay control in Flex versions above 12.0, with
> stage video fix applied:
> OSMFSettings.enableStageVideo = false;
> an error is received once the video player is minimized, hidden, or loses
> focus for a period of time. It appears that one of the components enters and
> invalid state ( OSMF?) and reports a state of loading / buffering even though
> video is finished. When cleanup is run or new source added the error listed
> below occurs. Workaround is to manually clear the video when the screen is
> hidden / transitions - code snippet provided below that may help.
> Error / Exception Received:
> TypeError: Error #1009: Cannot access a property or method of a null object
> reference.
> at org.osmf.media::MediaPlayer/getTraitOrThrow()
> at org.osmf.media::MediaPlayer/play()
> at Function/<anonymous>()
> at flash.events::EventDispatcher/dispatchEventFunction()
> at flash.events::EventDispatcher/dispatchEvent()
> at org.osmf.media::MediaPlayer/updateTraitListeners()
> at org.osmf.media::MediaPlayer/onTraitRemove()
> at flash.events::EventDispatcher/dispatchEventFunction()
> at flash.events::EventDispatcher/dispatchEvent()
> at org.osmf.media::MediaElement/setLocalTrait()
> at org.osmf.media::MediaElement/removeTrait()
> at org.osmf.elements::LightweightVideoElement/processUnloadingState()
> at org.osmf.media::LoadableElementBase/onLoadStateChange()
> at flash.events::EventDispatcher/dispatchEventFunction()
> at flash.events::EventDispatcher/dispatchEvent()
> at org.osmf.traits::LoadTrait/loadStateChangeEnd()
> at org.osmf.traits::LoadTrait/setLoadState()
> at org.osmf.traits::LoadTrait/onLoadStateChange()
> at flash.events::EventDispatcher/dispatchEventFunction()
> at flash.events::EventDispatcher/dispatchEvent()
> at org.osmf.traits::LoaderBase/updateLoadTrait()
> at org.osmf.net::NetLoader/executeUnload()
> at org.osmf.traits::LoaderBase/unload()
> at org.osmf.traits::LoadTrait/unload()
> at org.osmf.media::MediaPlayer/set media()
> at
> spark.components::VideoDisplay/setUpSource()[/Users/aharui/flex-sdk-4.12.1/frameworks/projects/spark/src/spark/components/VideoDisplay.as:1717]
> at spark.components::VideoDisplay/set
> source()[/Users/aharui/flex-sdk-4.12.1/frameworks/projects/spark/src/spark/components/VideoDisplay.as:1081]
> at
> view.activities::FullScreenVideo/setupFromContentMap()[C:\Users\Quinn\projects\dpa\DPA\workspace\dapApplication\src\view\activities\FullScreenVideo.mxml:32]
> at view.components::ActivityBase/set
> contentMap()[C:\Users\Quinn\projects\dpa\DPA\workspace\dapApplication\src\view\components\ActivityBase.as:83]
> at
> view::ContentView/handleShowScreen()[C:\Users\Quinn\projects\dpa\DPA\workspace\dapApplication\src\view\ContentView.mxml:86]
> at
> view::ContentView/___ContentView_State10_enterState()[C:\Users\Quinn\projects\dpa\DPA\workspace\dapApplication\src\view\ContentView.mxml:128]
> at flash.events::EventDispatcher/dispatchEventFunction()
> at flash.events::EventDispatcher/dispatchEvent()
> Code Snippet with workaround: ( hope it doesn't look as nasty as it does in
> the entry box )
> protected override function setupFromContentMap(map:Object):void {
> super.setupFromContentMap(map);
> if (map != null) {
> // not sure I like how they have this setup
> if( videoPlayer.source != null )
> {
> videoPlayer.stopAllMovieClips();
> }
> if (playVideoInstruction.video != null) {
> videoPlayer.source = playVideoInstruction.video;
> nextButton.visible = false;
> }
> if (playVideoInstruction.screenText != null) {
> screenText = playVideoInstruction.screenText;
> if (screenText.length > 0) {
> textBkg.visible = true;
> textArea.visible = true;
> try {
> textArea.textFlow =
> TextFlowUtil.importFromString(screenText);
> }
> catch (e:Error) {
> // need to popup something telling you the error
> textArea.text = "Text Formating Error: " +
> e.message;
> }
> }
> else {
> textBkg.visible = false;
> textArea.visible = false;
> }
> }
> else {
> textBkg.visible = false;
> textArea.visible = false;
> }
> }
> else {
> }
> }
> protected function videoPlayer_completeHandler(event:TimeEvent):void {
> // TODO Auto-generated method stub
> nextButton.visible = true;
> }
> protected override function nextButton_onClicked( me:MouseEvent ):void
> {
> // uncomment next two lines to work around issue
> // videoPlayer.stopAllMovieClips();
> // videoPlayer.source = null;
> super.nextButton_onClicked(me);
> }
> ]]></fx:Script>
>
>
> <!--<s:BitmapImage id="videoBkg" x="81" y="79" width="100%" height="100%"
> source="{AssetLibrary.FLV_PLACEHOLDER}" />-->
> <s:BorderContainer top="52" left="0" right="0" bottom="64"
> backgroundColor="black" borderVisible="false">
> <s:VideoDisplay id="videoPlayer" width="100%" height="100%"
> scaleMode="letterbox" autoRewind="false"
> complete="videoPlayer_completeHandler(event)"/>
> </s:BorderContainer>
--
This message was sent by Atlassian JIRA
(v6.2#6252)