0

ユーザーが [戻る] ボタンをクリックするか、ビューを変更しようとすると、このビューによって生成されたビデオ ストリームを停止するのに問題があります。終了する戻るボタンにストップを追加して、クリックするとストリームが停止して適切にナビゲートする方法を誰かが理解するのを手伝ってもらえますか?

コードは次のとおりです。

<?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"
viewDeactivate="view1_viewDeactivateHandler(event)"    
initialize="view1_initializeHandler(event)" 
backgroundColor="#000000" title="{data.title}">

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

import spark.events.ViewNavigatorEvent;
protected function liveStream_completeHandler(event:Event):void
{
// TODO Auto-generated method stub
if(!this.parentApplication.isTablet) 
theGroup.horizontalScrollPosition = liveStream.width / 2;

bi.visible = false;
}

protected function view1_initializeHandler(event:FlexEvent):void
{
// TODO Auto-generated method stub
systemManager.stage.addEventListener(KeyboardEvent.KEY_DOWN, deviceKeyDownHandler);
systemManager.stage.addEventListener(KeyboardEvent.KEY_UP, deviceKeyUpHandler);
}

protected function deviceKeyDownHandler(event:KeyboardEvent):void
{
// TODO Auto-generated method stub
if(event.keyCode == Keyboard.BACK && navigator.length > 1){
event.preventDefault(); 
this.liveStream.source = null;
this.liveStream.source = VideoPlayer;
}
}

protected function deviceKeyUpHandler(event:KeyboardEvent):void
{
// TODO Auto-generated method stub
if(event.keyCode == Keyboard.BACK && navigator.length > 1){
 navigator.popView(); 
}
}

protected function view1_viewDeactivateHandler(event:ViewNavigatorEvent):void
{
// TODO Auto-generated method stub
systemManager.stage.removeEventListener(KeyboardEvent.KEY_DOWN, deviceKeyDownHandler);
systemManager.stage.removeEventListener(KeyboardEvent.KEY_UP, deviceKeyUpHandler);
}

]]>
</fx:Script>

<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:navigationContent>
<s:Button label="Back" visible="{!this.parentApplication.isTablet}" 
click="navigator.popView()"/>
</s:navigationContent>


<s:Scroller width="100%" height="100%" id="streamScroller">
<s:Group id="theGroup">
<s:VideoPlayer width="100%" height="100%" complete="liveStream_completeHandler(event)"
source="some_source/livestream.f4m" maintainProjectionCenter="true" scaleMode="zoom" id="liveStream"/>
</s:Group>
</s:Scroller>
<s:BusyIndicator id="bi" width="40" height="40"  horizontalCenter="0" verticalCenter="0"/>

</s:View>
4

1 に答える 1