`
#天琪#
  • 浏览: 159324 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

判断VideoDisplay组件当前的播放状态。播放|缓冲。

    博客分类:
  • FLEX
阅读更多
转自:http://www.cnblogs.com/xxcainiao/archive/2008/04/25/1171489.html

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/01/01/determining-a-videodisplay-controls-current-playback-state-using-the-state-property-and-statechange-event/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="horizontal"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.events.VideoEvent;

            [Bindable]
            private var arrColl:ArrayCollection = new ArrayCollection();

            private const VIDEO_URL:String = "http://www.helpexamples.com/flash/video/water.flv";

            private function videoDisplay_stateChange(evt:VideoEvent):void {
                /* videoDisplay.state == evt.state */
                arrColl.addItem({label:videoDisplay.state});
                progressBar.label = evt.state;
            }

            private function button_click(evt:MouseEvent):void {
                /* Reset ArrayCollection object. */
                arrColl = new ArrayCollection();
                /* Set the Canvas container to visible. */
                canvas.visible = true;
                /* If video is currently playing, stop playback. */
                if (videoDisplay.playing) {
                    videoDisplay.stop();
                }
                /* Set VideoDisplay control's source property and start
                   video playback. */
                videoDisplay.source = VIDEO_URL;
                videoDisplay.play();
            }

            private function videoDisplay_playheadUpdate(evt:VideoEvent):void {
                progressBar.setProgress(evt.playheadTime, videoDisplay.totalTime);
            }
        ]]>
    </mx:Script>

    <mx:ApplicationControlBar dock="true">
        <mx:Button id="button"
                label="load movie"
                click="button_click(event);" />
    </mx:ApplicationControlBar>

    <mx:Canvas id="canvas" visible="false">
        <mx:VideoDisplay id="videoDisplay"
                playheadUpdateInterval="50"
                stateChange="videoDisplay_stateChange(event);"
                playheadUpdate="videoDisplay_playheadUpdate(event);" />

        <mx:ProgressBar id="progressBar"
                label=""
                labelPlacement="center"
                mode="manual"
                bottom="0"
                horizontalCenter="0" />
    </mx:Canvas>

    <mx:List id="list"
            dataProvider="{arrColl}"
            width="100" />

</mx:Application>
分享到:
评论

相关推荐

    labview 环形缓冲区组件

    环形缓冲区组件是LabVIEW中一个非常实用的数据处理工具,尤其适用于实时数据流处理和存储。它的工作原理类似于一个有限大小的循环数组,新数据到来时会替换旧数据,从而保持缓冲区的满状态。 环形缓冲区的主要优点...

    VideoDisplay

    在IT行业中,VideoDisplay通常指的是一个用于展示视频的软件组件或功能模块,它涉及多媒体处理、图形用户界面(GUI)设计以及可能的硬件加速技术。在这个场景中,“VideoDisplay的video的显示,测试代码”描述可能是...

    android边下载边播放音乐,有播放进度和缓冲效果

    为了实现播放进度提示,我们需定期获取MediaPlayer的当前播放位置,并将其与总长度相比,计算出百分比。这可以通过注册MediaPlayer的OnBufferingUpdateListener和OnSeekCompleteListener来实现。同时,我们还需要...

    播放PCM音频数据的双缓冲用法

    - 当音频数据播放完毕时,系统会调用回调函数`waveOutProc`,此时需要通过`WOM_DONE`消息来判断哪个`WAVEHDR`已经播放完毕,接着释放该`WAVEHDR`,重新填充数据后再次发送到音频设备。 - 释放`WAVEHDR`时需要调用`...

    网络视频播放 缓冲 横竖屏 时间 进度显示

    这涉及到进度条与视频播放状态的同步更新,通常通过监听视频的当前播放位置并更新进度条的值来实现。在用户拖动进度条时,需要计算新的播放位置,并调用相应的API来设置视频的播放位置。 为了实现以上功能,开发者...

    ios-流音频播放 提前缓冲播放.zip

    4. **事件回调**:提供丰富的回调机制,如播放开始、暂停、结束、缓冲更新等,方便开发者处理各种状态变化。 5. **低延迟**:设计优化使得音频播放延迟极低,提供更好的用户体验。 实现流音频播放,首先要集成...

    c++ 下利用waveOutWrite(directsound)编写的双缓冲区音频播放程序

    5. **`waveOutWrite`函数**:这是核心的播放函数,用于将音频数据写入到当前活动的缓冲区。在双缓冲区机制中,需要在回调函数中决定何时填充下一个缓冲区并启动播放。 6. **数据接收与处理**:如果要播放网络音频...

    自定义video播放组件-可全屏可加速兼容移动端

    在IT行业中,自定义video播放组件的开发是一项常见的任务,特别是在构建富媒体网站或移动应用时。本项目标题“自定义video播放组件-可全屏可加速兼容移动端”揭示了这个组件的核心特性,即它提供了丰富的用户体验...

    微信小程序video组件列表播放视频wxvideos-master.zip

    4. **状态管理**:在视频列表中,可能需要保持当前播放的视频的状态,比如播放中的视频应突出显示,或者控制其他视频暂停。这需要在JS文件中维护一个全局变量,记录当前播放的视频索引,并在事件处理函数中更新这个...

    VideoView 缓冲/卡顿监听和处理Demo

    通过监听缓冲进度,动态更新加载动画的状态,当缓冲完成时关闭加载动画,开始播放视频。 三、实时下载速度显示 通过监听MediaPlayer的OnInfoListener,可以获取到视频的下载速度。在onInfo()方法中,如果事件码是...

    java课件-用户界面组件.doc

    | `doubleBuffered` | 绘制组件是否采用双缓冲技术 | | `locale` | 组件的地区特性 | | `border` | 指定组件的边框 | 这些属性可以通过特定的方法进行访问或修改,从而实现对组件外观和行为的控制。 ##### 10.1.3 ...

    API 播放wav文件实现双缓冲

    5. 回调处理:当`waveOutProc`回调函数被调用时,表示当前缓冲区的音频已播放完毕,此时可以将另一个缓冲区的数据加载到空闲的缓冲区,并再次发送到硬件。 6. 关闭设备:在所有音频播放完毕后,使用`waveOutClose`...

    vitamio缓冲播放

    此外,Vitamio还提供了缓冲进度显示,让用户了解当前的缓冲状态。 在实际开发中,Vitamio提供了丰富的API接口和回调函数,使得开发者可以定制播放器的外观、控制播放行为,如播放、暂停、快进、快退、全屏等。此外...

    行业文档-设计装置-笔芯浮塞装配的缓冲组件.zip

    在实际应用中,优化缓冲组件的方法包括调整零件的几何形状、材料性能、预加载状态以及整体结构。例如,改变弹簧的线径、节距或自由长度可以调整其弹力特性;采用不同配方的橡胶或塑料可以改善耐久性;甚至可以引入...

    行业资料-电子功用-保护电子装置的缓冲组件的介绍分析.rar

    - **功耗**:考虑缓冲组件在工作状态下的功率损耗,以免影响系统效率。 - **热管理**:过高的工作温度可能影响缓冲组件的性能和寿命,需考虑散热设计。 - **兼容性**:缓冲组件应与系统其他部分良好配合,不影响...

    C++ 双缓存机制播放音频流(PCM裸流)

    2. **缓冲区管理**:创建两个缓冲区,并维护一个指针追踪当前播放的位置。当一个缓冲区为空时,开始加载另一个缓冲区。 3. **播放控制**:使用音频API(如Windows的waveOutWrite或跨平台的ALSA、PulseAudio、OpenAL...

    Audioqueue播放缓冲区源代码

    `CAudioQueuePlayer.cpp`和`CAudioQueuePlayer.h`是实现`AudioQueue`播放的核心类,它们可能包含了初始化`AudioQueue`,设置回调函数,加载音频数据到缓冲区,以及控制播放状态等功能。 1. **初始化AudioQueue**:...

    视频播放组件PasLibVlc_3.0.7.zip

    5. **事件驱动编程**:PasLibVlc提供了丰富的事件回调机制,使得开发者能够及时响应播放状态的变化,如播放、暂停、停止、缓冲等。 三、PasLibVlc 3.0.7新特性 在3.0.7版本中,PasLibVlc进行了如下关键改进: 1. ...

    VideoView缓冲/卡顿监听和处理

    在Android开发中,VideoView是用于播放视频的基本组件。它是一个可以嵌入到布局中的视图,能够方便地实现视频的播放、暂停、全屏等操作。本篇将深入探讨如何监听VideoView的缓冲状态、实时显示下载速度,并实现大小...

    android简易播放器,边下边播放,边缓冲边播放

    通过`MediaPlayer`,我们可以控制媒体文件的播放、暂停、停止等操作,并获取播放状态、进度等信息。在边下边播的场景中,`MediaPlayer`通常需要与网络流媒体数据源配合,例如HTTP或RTSP协议的URL,这样在下载的同时...

Global site tag (gtag.js) - Google Analytics