blob: 9d070ed2d40e1e507225725854e407b82dd9c6f3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
<?xml version="1.0"?>
<!-- -->
<!-- Adobe Flex 4 source file of VPlayer.swf, -->
<!-- a FlashPlayer-10 compatible component for playing -->
<!-- FLV and MP4/H.264 video files and streams. -->
<!-- -->
<!-- version 20120301 -->
<!-- -->
<!-- -->
<!-- The free Adobe Flex 4 SDK is required to compile -->
<!-- this file. Get it from -->
<!-- -->
<!-- http://www.adobe.com/products/flex/ -->
<!-- -->
<!-- and run -->
<!-- -->
<!-- mxmlc -static-link-runtime-shared-libraries VPlayer.mxml -->
<!-- -->
<!-- on the command line. -->
<!-- -->
<!-- -->
<!-- Copyright (C) 2011 Alexander Grahn -->
<!-- -->
<!-- This work may be distributed and/or modified under the -->
<!-- conditions of the LaTeX Project Public License, either -->
<!-- version 1.3 of this license or (at your option) any later -->
<!-- version. -->
<!-- -->
<!-- The latest version of this license is in -->
<!-- http://www.latex-project.org/lppl.txt -->
<!-- and version 1.3 or later is part of all distributions of -->
<!-- LaTeX version 2005/12/01 or later. -->
<!-- -->
<!-- This work has the LPPL maintenance status `maintained'. -->
<!-- -->
<!-- The current maintainer of this work is A. Grahn. -->
<!-- -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
preinitialize="initialise(FlexGlobals.topLevelApplication.parameters);"
>
<fx:Script>
<![CDATA[
[Bindable] private var source:String;
[Bindable] private var autoPlay:Boolean=false;
[Bindable] private var loop:Boolean=false;
[Bindable] private var volume:Number=0.75;
private var vidComplete:Boolean=false;
import mx.core.FlexGlobals;
private function initialise(flashVars:Object):void{
source=flashVars.source;
if(flashVars.autoPlay){autoPlay=(flashVars.autoPlay=='true')}
if(flashVars.loop){loop=(flashVars.loop=='true')}
if(flashVars.volume){volume=Number(flashVars.volume)}
}
import flash.events.ProgressEvent;
private function progressHandler(event:ProgressEvent):void{
if (event.bytesTotal) event.target.visible=true;
else event.target.visible=false;
}
import org.osmf.events.MediaPlayerStateChangeEvent;
import mx.controls.Alert;
private function stateChangeHandler(event:MediaPlayerStateChangeEvent):void{
vidComplete=false;
if(event.state=='playbackError')
Alert.show('Unable to play \''+event.target.source+'\'','Error');
}
]]>
</fx:Script>
<s:VideoDisplay
id="vidDisp"
width="100%" height="100%" scaleMode="stretch"
source="{source}" volume="{volume}"
autoPlay="{autoPlay}" autoRewind="false" loop="{loop}"
mouseDown="vidDisp.pause();"
mouseUp="if(vidComplete){vidDisp.seek(0);}vidDisp.play();"
mediaPlayerStateChange="stateChangeHandler(event);"
complete="vidComplete=true;"
/>
<mx:ProgressBar width="80%" mode="polled" source="vidDisp"
horizontalCenter="0" verticalCenter="0" labelPlacement="center"
id="loadingProgress" alpha="0.5"
complete="loadingProgress.visible=false;"
progress="progressHandler(event)"
/>
</s:Application>
|