Multiple VideoDisplay and playback controls for each using repeater

Problem Summary

I want to dynamically generate a VideoDisplay control and playback controls for each using repeater and data in an XML file.

Solution Summary

Use a component housing the VideoDisplay control and an HBox with Play, Stop, and Pause buttons, and use the component in a Repeater, that takes data from an XML file.

Explanation

See the zip file for the exported project.

----- assets/videos/france.flv -----


----- assets/videos/japan.flv -----

----- data/videoData.xml -----

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <videos>
  3. <videoname="France"id="france"xlink="assets/videos/france.flv"/>
  4. <videoname="Japan"id="japan"xlink="assets/videos/japan.flv"/>
  5. </videos>

----- components/VideoComp.mxml -----

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <mx:VBoxxmlns:mx="http://www.adobe.com/2006/mxml"
  3. width="100%"height="100%">
  4. <mx:Script>
  5. <![CDATA[
  6. [Bindable]privatevar_vidData:String;
  7. publicfunctionsetvidData(video:String):void{
  8. _vidData=video;
  9. }
  10. ]]>
  11. </mx:Script>
  12. <mx:VideoDisplayid="vid"
  13. autoPlay="false"source="{_vidData}"/>
  14. <mx:HBox>
  15. <mx:Buttonlabel="Play"click="vid.play();"/>
  16. <mx:Buttonlabel="Pause"click="vid.pause();"/>
  17. <mx:Buttonlabel="Stop"click="vid.stop();"/>
  18. </mx:HBox>
  19. </mx:VBox>

----- MultipleVideos.mxml -----

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"
  3. creationComplete="init()"xmlns:comp="components.*">
  4. <mx:Script>
  5. <![CDATA[
  6. importmx.collections.XMLListCollection;
  7. importmx.rpc.events.ResultEvent;
  8. [Bindable]publicvarvideosDP:XMLListCollection=newXMLListCollection();
  9. privatefunctioninit():void{
  10. videosRequest.send();
  11. }
  12. privatefunctionvideosResultHandler(event:ResultEvent):void{
  13. varlist:XMLList=newXMLList(event.result..video);
  14. videosDP=newXMLListCollection(list);
  15. }
  16. ]]>
  17. </mx:Script>
  18. <mx:HTTPServiceid="videosRequest"useProxy="false"resultFormat="e4x"
  19. result="videosResultHandler(event)"url="data/videoData.xml"/>
  20. <mx:Repeaterid="myRepeater"dataProvider="{videosDP}">
  21. <mx:Labeltext="{'Path:'+myRepeater.currentItem.@xlink}"/>
  22. <comp:VideoCompvidData="{myRepeater.currentItem.@xlink}"/>
  23. </mx:Repeater>
  24. </mx:Application>

Related files for download

You need to have two flv files, france.flv and japan.flv.
MultipleVideos.zip

提供了一个基于51单片机的RFID门禁系统的完整资源文件,包括PCB图、原理图、论文以及源程序。该系统设计由单片机、RFID-RC522频射卡模块、LCD显示、灯控电路、蜂鸣器报警电路、存储模块和按键组成。系统支持通过密码和刷卡两种方式进行门禁控制,灯亮表示开门成功,蜂鸣器响表示开门失败。 资源内容 PCB图:包含系统的PCB设计图,方便用户进行硬件电路的制作和调试。 原理图:详细展示了系统的电路连接和模块布局,帮助用户理解系统的工作原理。 论文:提供了系统的详细设计思路、实现方法以及测试结果,适合学习和研究使用。 源程序:包含系统的全部源代码,用户可以根据需要进行修改和优化。 系统功能 刷卡开门:用户可以通过刷RFID卡进行门禁控制,系统会自动识别卡片并判断是否允许开门。 密码开门:用户可以通过输入预设密码进行门禁控制,系统会验证密码的正确性。 状态显示:系统通过LCD显示屏显示当前状态,如刷卡成功、密码错误等。 灯光提示:灯亮表示开门成功,灯灭表示开门失败或未操作。 蜂鸣器报警:当刷卡或密码输入错误时,蜂鸣器会发出报警声,提示用户操作失败。 适用人群 电子工程、自动化等相关专业的学生和研究人员。 对单片机和RFID技术感兴趣的爱好者。 需要开发类似门禁系统的工程师和开发者。
要允许从HDMI输入播放捕获到AudioTrack,您需要使用AudioPolicyService来配置音频策略。以下是一些步骤: 1. 创建一个名为audio_policy.conf的文本文件,并将其放在/system/etc/目录中。 2. 在audio_policy.conf文件中,为HDMI输入定义一个AudioProfile,例如: ``` profile "hdmi_in_playback" { formats AUDIO_FORMAT_PCM_16_BIT rates 44100 channel_masks AUDIO_CHANNEL_OUT_STEREO devices AUDIO_DEVICE_IN_HDMI } ``` 此配置文件定义了一个名为“hdmi_in_playback”的音频配置文件,它支持16位PCM格式,采样率为44100Hz,双声道输出,并使用HDMI输入设备。 3. 更新AudioPolicyService的配置,使其支持新的音频配置文件。在设备上运行以下命令: ``` adb shell service call audio 3 i32 0 i32 1 s16 "your_package_name" s16 "your_audio_policy.conf_file_path" ``` 这将更新AudioPolicyService的配置,并使其支持新的音频配置文件。 4. 在您的代码中使用AudioTrack对象,并使用“hdmi_in_playback”配置文件进行初始化: ``` AudioTrack track = new AudioTrack.Builder() .setAudioAttributes(new AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_MEDIA) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) .build()) .setAudioFormat(new AudioFormat.Builder() .setEncoding(AudioFormat.ENCODING_PCM_16BIT) .setSampleRate(44100) .setChannelMask(AudioFormat.CHANNEL_OUT_STEREO) .build()) .setBufferSizeInBytes(bufferSize) .setTransferMode(AudioTrack.MODE_STREAM) .setPerformanceMode(AudioTrack.PERFORMANCE_MODE_LOW_LATENCY) .setSessionId(AudioSystem.newAudioSessionId()) .setOffloadedPlayback(true) .setOffloadDelayFrames(0) .setOffloadPositionUpdateListener(null, null) .setPreferredDevice(AudioDeviceInfo.TYPE_HDMI) .build(); ``` 这将使用“hdmi_in_playback”配置文件初始化AudioTrack对象,并将首选设备设置为HDMI输入设备。 请注意,这些步骤可能因设备和Android版本而异。在实施此解决方案之前,请确保您已经了解了相关文档和API,并且已经进行了适当的测试。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值