转自: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中一个非常实用的数据处理工具,尤其适用于实时数据流处理和存储。它的工作原理类似于一个有限大小的循环数组,新数据到来时会替换旧数据,从而保持缓冲区的满状态。 环形缓冲区的主要优点...
在IT行业中,VideoDisplay通常指的是一个用于展示视频的软件组件或功能模块,它涉及多媒体处理、图形用户界面(GUI)设计以及可能的硬件加速技术。在这个场景中,“VideoDisplay的video的显示,测试代码”描述可能是...
为了实现播放进度提示,我们需定期获取MediaPlayer的当前播放位置,并将其与总长度相比,计算出百分比。这可以通过注册MediaPlayer的OnBufferingUpdateListener和OnSeekCompleteListener来实现。同时,我们还需要...
- 当音频数据播放完毕时,系统会调用回调函数`waveOutProc`,此时需要通过`WOM_DONE`消息来判断哪个`WAVEHDR`已经播放完毕,接着释放该`WAVEHDR`,重新填充数据后再次发送到音频设备。 - 释放`WAVEHDR`时需要调用`...
这涉及到进度条与视频播放状态的同步更新,通常通过监听视频的当前播放位置并更新进度条的值来实现。在用户拖动进度条时,需要计算新的播放位置,并调用相应的API来设置视频的播放位置。 为了实现以上功能,开发者...
4. **事件回调**:提供丰富的回调机制,如播放开始、暂停、结束、缓冲更新等,方便开发者处理各种状态变化。 5. **低延迟**:设计优化使得音频播放延迟极低,提供更好的用户体验。 实现流音频播放,首先要集成...
5. **`waveOutWrite`函数**:这是核心的播放函数,用于将音频数据写入到当前活动的缓冲区。在双缓冲区机制中,需要在回调函数中决定何时填充下一个缓冲区并启动播放。 6. **数据接收与处理**:如果要播放网络音频...
在IT行业中,自定义video播放组件的开发是一项常见的任务,特别是在构建富媒体网站或移动应用时。本项目标题“自定义video播放组件-可全屏可加速兼容移动端”揭示了这个组件的核心特性,即它提供了丰富的用户体验...
4. **状态管理**:在视频列表中,可能需要保持当前播放的视频的状态,比如播放中的视频应突出显示,或者控制其他视频暂停。这需要在JS文件中维护一个全局变量,记录当前播放的视频索引,并在事件处理函数中更新这个...
通过监听缓冲进度,动态更新加载动画的状态,当缓冲完成时关闭加载动画,开始播放视频。 三、实时下载速度显示 通过监听MediaPlayer的OnInfoListener,可以获取到视频的下载速度。在onInfo()方法中,如果事件码是...
| `doubleBuffered` | 绘制组件是否采用双缓冲技术 | | `locale` | 组件的地区特性 | | `border` | 指定组件的边框 | 这些属性可以通过特定的方法进行访问或修改,从而实现对组件外观和行为的控制。 ##### 10.1.3 ...
5. 回调处理:当`waveOutProc`回调函数被调用时,表示当前缓冲区的音频已播放完毕,此时可以将另一个缓冲区的数据加载到空闲的缓冲区,并再次发送到硬件。 6. 关闭设备:在所有音频播放完毕后,使用`waveOutClose`...
此外,Vitamio还提供了缓冲进度显示,让用户了解当前的缓冲状态。 在实际开发中,Vitamio提供了丰富的API接口和回调函数,使得开发者可以定制播放器的外观、控制播放行为,如播放、暂停、快进、快退、全屏等。此外...
在实际应用中,优化缓冲组件的方法包括调整零件的几何形状、材料性能、预加载状态以及整体结构。例如,改变弹簧的线径、节距或自由长度可以调整其弹力特性;采用不同配方的橡胶或塑料可以改善耐久性;甚至可以引入...
- **功耗**:考虑缓冲组件在工作状态下的功率损耗,以免影响系统效率。 - **热管理**:过高的工作温度可能影响缓冲组件的性能和寿命,需考虑散热设计。 - **兼容性**:缓冲组件应与系统其他部分良好配合,不影响...
2. **缓冲区管理**:创建两个缓冲区,并维护一个指针追踪当前播放的位置。当一个缓冲区为空时,开始加载另一个缓冲区。 3. **播放控制**:使用音频API(如Windows的waveOutWrite或跨平台的ALSA、PulseAudio、OpenAL...
`CAudioQueuePlayer.cpp`和`CAudioQueuePlayer.h`是实现`AudioQueue`播放的核心类,它们可能包含了初始化`AudioQueue`,设置回调函数,加载音频数据到缓冲区,以及控制播放状态等功能。 1. **初始化AudioQueue**:...
5. **事件驱动编程**:PasLibVlc提供了丰富的事件回调机制,使得开发者能够及时响应播放状态的变化,如播放、暂停、停止、缓冲等。 三、PasLibVlc 3.0.7新特性 在3.0.7版本中,PasLibVlc进行了如下关键改进: 1. ...
在Android开发中,VideoView是用于播放视频的基本组件。它是一个可以嵌入到布局中的视图,能够方便地实现视频的播放、暂停、全屏等操作。本篇将深入探讨如何监听VideoView的缓冲状态、实时显示下载速度,并实现大小...
通过`MediaPlayer`,我们可以控制媒体文件的播放、暂停、停止等操作,并获取播放状态、进度等信息。在边下边播的场景中,`MediaPlayer`通常需要与网络流媒体数据源配合,例如HTTP或RTSP协议的URL,这样在下载的同时...