主题:  视频文件能否全屏?

qylhbyx

职务:普通成员
等级:2
金币:1.0
发贴:369
#12002/5/6 10:43:09
能不能用按钮来控制视频的全屏呢?或其它的方法,比如点击视频窗口等方法,并且还要求能够还原到原来的大小。
我见过,但是我不知道怎么做。
请高手指点一二!
彤庭玉
qylhbyx@163.com



5D荣誉斑竹

职务:普通成员
等级:3
金币:10.0
发贴:954
#22002/5/6 11:55:15
庭玉兄,我有思路,但没试过,我们探讨一下吧:
我想可不可以在视屏属性设置中把视屏的大小、位置设置成变量,(初值在程序开始的初始化中设置),然后在程序中设置交互,如热区,按钮等,在响应交互时,通过改变变量来改变视屏窗口的大小!
你说这样可行吗??!!


真正的光明绝不是永没有黑暗的时间,只是永不被黑暗所湮没罢了;真正的英雄绝不是永没有卑下的情操,只是永不被卑下的情操所屈服罢了。

qylhbyx

职务:普通成员
等级:2
金币:1.0
发贴:369
#32002/5/7 18:18:34
好的!
但是我现在没有时间啊!
我正忙于学习flash呢!
只是对aw有所了解而已,并且见过这样的实例也想自己实践一下结果没成功,
所以就放了现在就只能求助于高手帮忙啦!
有没有现成的实例啊!
发一个过来!
将不胜感激!
彤庭玉
qylhbyx@163.com



qylhbyx

职务:普通成员
等级:2
金币:1.0
发贴:369
#42002/5/7 18:21:00
对了,虚足兄你那右键实例也发一个给我吧!
呵呵!你的东西好难要啊!
彤庭玉
qylhbyx@163.com



xie0909_5d

职务:普通成员
等级:1
金币:1.0
发贴:161
#52002/5/7 18:26:02
其实用DMX就可实现,在这前的贴子就有过。


听着摇滚乐,喝着白开水。

困龙在天

职务:普通成员
等级:7
金币:10.0
发贴:2942
#62002/5/7 18:41:39
想要在全屏时,还显示按钮取消全屏,是不可能的吧
因为已经全屏了,有按钮也看不到呀


[url]http://sintian.chinaccd.net[/url]

不歪

职务:普通成员
等级:3
金币:3.0
发贴:1236
#72002/5/8 19:11:36
xie0909 说:
用DMX就可实现!
是的只是还点有问题?

我引用一点:


DirectMedia Xtra用户指南
本文由:JamesYuZhao提供

介绍
  DirectMedia Xtra是一种Sprite Xtra。Sprite Xtra可以用计算图标进行控制,而且属性也可以通过脚本指定,就像Authorware中的内置媒体文件一样。
  如果回放的系统允许,DirectMedia Xtra还支持Microsoft's DirectDraw and DirectSound。它总能够根据机器的不同选择最佳的播放效果,即使显示设置为256色,也能使用高彩色来播放媒体文件。DirectDraw引擎利用直接写显存的技术增强回放效果。
  要建立一个图标,打开INSERT菜单,选择TABULEIRO XTRAS -> DirectMedia Xtra,这时会显示一个DirectMedia Xtra属性对话框,单击browse file,打开另一个对话框,提示你选择一个媒体文件。它所支持的媒体类型有Mpeg, AVI, Quicktime, WAV, AIF, MP2 和MIDI。文件可以在本地机器,也可以在局域网上其他计算机上,甚至可以用输入URL链接一个互联网上的文件。选好文件,点击OK,返回属性对话框,文件的长度(时间),尺寸等信息应能正确的显示出来。
  你可以预览文件,标注提示点并设置播放选项(工具条,音量,速率,平衡等等),单击OK完成。在流程线上就出现一个名为DirectMedia Xtra的图标,可以重新调整播放的位置和尺寸。
提示点
  每一个DirectMedia Xtra可以有最多64个提示点,以毫秒位单位,每一个提示点的名字最多可以使用32个字符。要建立一个提示点就要在属性对话框中预览文件时确定时间,然后选择"ADD",显示一个窗口定义提示点的名字。如果以后想修改提示点,在列表中双击名字就可以直接编辑了。使用"GOTO"检查提示点的定位,"REMOVE"用来删除一个提示点。
用脚本建立提示点
  CallIcon(@"IconName", #addcuepoint, cuepointtime, "cuepointname") - 这个函数建立一个新的提示点,cuepointtime是时间 cuepointname是名字,自动排列顺序。
Example:
  CallIcon(@"DirectMedia Xtra", #addcuepoint, 10000, "newcue")
  CallIcon(@"IconName", #removecuepoint, cuepointindex) - 删除一个提示点,需要指定提示点的序号。  Example:
  CallIcon(@"DirectMedia Xtra", #removecuepoint, 1)
使用提示点
  DirectMedia Xtra 的提示点被用来在回放时几个方面的控制。下面是它的几个属性:
  isPastCuePoint(sprite) ---经过的提示点
  the mostRecentCuePoint of sprite ---最近的提示点
  the cuepointtimes of icon ----指定提示点的时间
  the cuepointnames of icon ----指定提示点的名字 当媒体文件播放时,你必须设置一个事件响应以获取提示点,请参考所附带的例子程序。主要步骤是:建立一个"Event"类型的响应,在属性对话框中选择一个"Sender"图标名,再双击"Event Name"框中的"CuePointPassed"事件。这样,每当经过一个新的提示点,就触发这个响应。后面将要介绍的EventLastMatched变量会让你更多地了解这个事件。
Properties 属性
  DirectMedia Xtra所有的属性都可以很方便地在属性对话框中进行设置,这个对话框在你创建图标或者双击该图标时出现。同时,也可以通过脚本进行设置。
  Icon Properties 图标属性
  file ---被使用的媒体文件的全路径名 例如: result:=GetIconProperty(@"DirectMedia Xtra", #file) Trace(result) --"C:\myfile\file.mpg"
  SetIconProperty(@"DirectMedia Xtra", #file,"C:\myfile2.mpg")
  title ---媒体文件名,不带路径。这个属性用于在原目录找不到文件的时候。 例如: result:=GetIconProperty(@"DirectMedia Xtra", #title) Trace(result) --"file.mpg"
  注:基于HTTP的文件链接,DMX不会在启动时自动定位。
  showlocatefiledialog --- DirectMedia Xtra在运行时会自动定位媒体文件,如果文件没有找到,使用这个属性可以显示一个指定文件的对话框,否则,就是一片空白。 例如: SetIconProperty(@"DirectMedia Xtra", #showlocatefiledialog,TRUE)
  linkedmedialocated --- 这个属性可以自动设置,用来表明媒体文件是否被正确调用。如果属性的值为False,DirectMedia Xtra就不会进行初始化播放。
  例如: result:=GetIconProperty(@"DirectMedia Xtra", #linkedmedialocated) Trace(result) --"1" duration --- 媒体文件的持续播放的时间,单位为毫秒。
  例如: result:=GetIconProperty(@"DirectMedia Xtra", #duration) Trace(result) -- 45200 videowidth --- 媒体文件的播放宽度,单位为像素。
  例如: result:=GetIconProperty(@"DirectMedia Xtra", #videowidth) Trace(result) -- 352 videoheight ---媒体文件的播放高度,单位为像素
  例如: result:=GetIconProperty(@"DirectMedia Xtra", #videoheight) Trace(result) -- 240 volume --- 回放音频的音量。值的范围从-100到0(dB即分贝)
  例如: result:=GetIconProperty(@"DirectMedia Xtra", #volume) Trace(result) -- -10 SetIconProperty(@"DirectMedia Xtra", #volume,0) balance --- 音频回放平衡,值的范围从-100到100(dB即分贝)
  例如: result:=GetIconProperty(@"DirectMedia Xtra", #balance) Trace(result) -- -100 SetIconProperty(@"DirectMedia Xtra", #balance,0) rate --- 回放速率。值的范围从0到200,是原来标准播放速度的百分比例。
  例如: result:=GetIconProperty(@"DirectMedia Xtra", #rate) Trace(result) -- 100 SetIconProperty(@"DirectMedia Xtra", #rate,80) cpuboost --- 由于DirectShow?技术要占用比较多的CPU时间,因此DirectMedia Xtra?会使Authorware?的运行变慢。如果你遇到回放缓慢或者断续的情况,可以使用这个属性设置。合法的取值范围是0到95(百分比),一般来说,超过60就可以解决问题了。
  例如: SetIconProperty(@"DirectMedia Xtra", #cpuboost,60) adjustdurationbeforeplayback --- 如果这项属性的值为真,DirectMedia Xtra?就会在开始播放的同时确定媒体文件的可持续播放时间。这是十分必要的,因为对于同一个文件,不同的DirectShow过滤器会报告不同的可持续播放时间。这样一来,当你把一个成品放到另一台机器运行的时候,DirectMedia Xtra就有可能无法达到指定的提示点,或者它会认为文件还没有播放完。使用这个属性可以保证正常播放,因此你应该在大多数情况下都使用。
  例如: SetIconProperty(@"DirectMedia Xtra", #adjustdurationbeforeplayback,1) hastoolbar --- 指出是否在播放窗口附带一个工具条。值为0(假)或1(真)。
  例如: SetIconProperty(@"DirectMedia Xtra", #hastoolbar,1) loop --- 指出是否自动循环播放文件。值为0(假)或1(真)。
  例如: SetIconProperty(@"DirectMedia Xtra", #loop,1) playsegment --- 指出是否只播放文件的一个片断。值为0(假)或1(真)。
  例如: SetIconProperty(@"DirectMedia Xtra", #playsegment,1) segmentstart --- 指定文件播放的起始时间,单位是毫秒。只在playsegment的值为真时有效。
  例如: SetIconProperty(@"DirectMedia Xtra", #segmentstart,10700) segmentend ---指定文件播放的结束时间,单位是毫秒。只在playsegment的值为真时有效。
  例如: SetIconProperty(@"DirectMedia Xtra", #segmentend,45800) pausedatstart --- 指出是否在打开文件的时候暂停,不播放。值为0(假)或1(真)。
  例如: SetIconProperty(@"DirectMedia Xtra", #pausedatstart,1) cuepointtimes --- 与该图标有关的提示点时间的列表。
  例如: result:=GetIconProperty(@"DirectMedia Xtra", #cuepointtimes) Trace(result) -- [4500,12300,34650,67321] cuepointnames ---与该图标有关的提示点名字的列表
  例如: result:=GetIconProperty(@"DirectMedia Xtra", #cuepointnames) Trace(result) -- ["Cue 1","NewCuePoint","Start Point","Second part"] Sprite 属性 currenttime --- 媒体文件当前播放位置,单位是毫秒。
  例如: result:=GetSpriteProperty(@"DirectMedia Xtra", #currenttime) Trace(result) -- 22345 mediabusy --- 表明媒体文件是否正在播放。值为0(假)或1(真)。
  例如: result:=GetSpriteProperty(@"DirectMedia Xtra", #mediabusy) Trace(result) -- 1 mostrecentcuepoint --- 最后经过的提示点的序号。
  例如: result:=GetSpriteProperty(@"DirectMedia Xtra", #mostrecentcuepoint) Trace(result) -- 2 Functions --- 函数 DirectMedia Xtra提供了几种函数功能,可以用脚本的方式使用来控制媒体文件的回放。 Icon Functions --- 图标函数 CallIcon(@"IconName", #isDirectShowInstalled) --- 返回0(假)或1(真)。用来判断用户机上是否安装了DirectShow。在正式版中有效。
  例如: result:=CallIcon(@"DirectMedia Xtra", #isDirectShowInstalled) Trace(result) -- 1 CallIcon(@"IconName", #addcuepoint, cuepointtime, "cuepointname") --- 这个函数可以通过脚本语言建立一个新的提示点,提示点会自动排列顺序。
  例如: CallIcon(@"DirectMedia Xtra", #addcuepoint, 10000, "newcue") CallIcon(@"IconName", #removecuepoint, cuepointindex) --- 这个函数可以把你指定序号的提示点删除。
  例如: CallIcon(@"DirectMedia Xtra", #removecuepoint, 1) CallIcon(@"IconName", #scanfile) --- 当通过脚本语言改变要播放的媒体文件时,这个函数可以确定文件长度和可持续播放时间。它将自动查询文件并改变自身属性。Adjustdurationbeforeplayback也可以用来校对播放时间,我们建议使用这个属性来代替scanfile(),因为它更准确。
  例如: CallIcon(@"DirectMedia Xtra", #scanfile) CallIcon(@"IconName", #register, registration number) --- 在运行时对DirectMedia Xtra?进行注册。这个函数不常用。
  例如: CallIcon(@"DirectMedia Xtra", #register,"SERIALNUMBERHERE") Sprite 函数 CallSprite(@"IconName", #videoplay) --- 用于开始或是恢复播放媒体文件。通常在调用时会自动播放文件,除非选择了"Paused at Start"(在开始时暂停)
  例如: CallSprite(@"DirectMedia Xtra ", #videoplay) CallSprite(@"IconName", #videopause) --- 暂停播放。
  例如: CallSprite(@"DirectMedia Xtra ", #videopause) CallSprite(@"IconName", #videoseek , time) --- 查找并暂停在指定的时间位置。时间单位是毫秒。
  例如: CallSprite(@"DirectMedia Xtra ", #videoseek, 15000) CallSprite(@"IconName", #videoplaysegment , starttime, endtime) --- 播放文件的一个片断。请注意这个选项实际上限制了对片断以外其他部分的控制,因此应该再用另一个videoplaysegment()定位到其他的时间点上,跳出这个片断。
  例如: CallSprite(@"DirectMedia Xtra ", #videoplaysegment, 10000, 20000) -- the following command pauses the video in time location 30000 CallSprite(@"DirectMedia Xtra ", #videoplaysegment , 30000, 30000) CallSprite(@"IconName", #isPastCuePoint , cuepointindex) --- 判断指定序号的提示点是否已经经过了。返回值为0(假)或1(真)。
  例如: result:=CallSprite(@"DirectMedia Xtra ", #isPastCuePoint, 2) Trace(result) --- 1 CallSprite(@"IconName", #setvolume, volume) --- 设置音频回放的音量。赋值范围从-100到0(dB /分贝)。
  例如: CallSprite(@"DirectMedia Xtra ", #setvolume , 0) CallSprite(@"IconName", #getvolume) --- 返回当前音频播放的音量值,单位是dB /分贝。
  例如: result:=CallSprite(@"DirectMedia Xtra ", #getvolume) Trace(result) -- -20 CallSprite(@"IconName", #setbalance, balance) --- 设置音频回放的平衡。赋值范围从-100到100(dB /分贝)。
  例如: CallSprite(@"DirectMedia Xtra ", #setvolume , 0) CallSprite(@"IconName", #getbalance) ---返回当前音频播放的平衡值,单位是dB /分贝。
  例如: result:=CallSprite(@"DirectMedia Xtra ", #getbalance) Trace(result) -- -100 CallSprite(@"IconName", #setrate , rate) ---设置播放速率。赋值范围从0到200(%)
  例如: CallSprite(@"DirectMedia Xtra ", #setrate , 80) CallSprite(@"IconName", #getrate) --- 返回当前播放速率,百分比值。
  例如: result:=CallSprite(@"DirectMedia Xtra ", #getrate) Trace(result) -- 100 CallSprite(@"IconName", #setfulscreen) --- 这个函数利用ActiveMovie/DirectShow实现全屏播放。它的全屏播放方式是完全独立的,无论你的程序是否工作在全屏状态下。在此期间不响应鼠标和键盘事件,因此要利用提示点来返回程序,而且在结束时要使用一次RemoveFullScreen()函数。
  例如: CallSprite(@"DirectMedia Xtra ", #setfullscreen) CallSprite(@"IconName", #removefulscreen) --- 停止ActiveMovie/DirectShow的全屏播放。返回到Authorware的展示窗口。
  例如: CallSprite(@"DirectMedia Xtra ", #removefullscreen 1) Creating Executables --- 建立可执行文件 DirectMedia Xtra只能运行在Windows95, 98 and Windows NT 环境。因此,你应该建立Windows? 95 and Windows NT的可执行文件。而且还要把DirectMediaXtra.x32文件放到XTRAS文件夹中,和你的可执行文件放在同一个目录下。 最终的文件结构应该像下面这样: 可执行文件 --- C:\myproj\proj.exe Xtra 文件 --- C:\myproj\Xtras\DirectMediaXtra.x32
  DirectMedia Xtra会自动定位所有在同一目录下的相关媒体文件,或者在searchpath变量中指定的目录中的。但不会从HTTP服务器上查找媒体文件。



如果有链接错误或什么不明白之处,请来信告诉我,或者在留言板中留言,谢谢合作!




<返回>

--------------------------------------------------------------------------------

最佳浏览方式:IE4.0/5.0 800*600 小字体

网页设计:远方(ruanjc)

网站建于:2000.2.19.



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#82002/5/8 19:19:00
sintian在上个帖子中说
引用:
想要在全屏时,还显示按钮取消全屏,是不可能的吧
因为已经全屏了,有按钮也看不到呀


sintian兄,其实不一定要用按钮呀,在全屏电影上用tMsControls.u32做个右键交互菜单,通过菜单交互来控制还原是可以的。以前我帮朋友作过这样的例子。
ps:我以前回文章都是类似上面这样的简单,结果给人说为是水文,不象你们都把过程具体的写出来。。我懒呀。。西西



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#92002/5/8 19:20:45
DirectMedia Xtra也是可以实现,可是我手头上的都是CRACK版本的,如果要用在商业发行上,会不会出乱子呀?呵呵



5D荣誉斑竹

职务:普通成员
等级:3
金币:10.0
发贴:954
#102002/5/8 19:22:28
Rock,菜单不会被遮住吗???你给我发个实例好吗,麻烦了!
hubinbin2000@163.com


真正的光明绝不是永没有黑暗的时间,只是永不被黑暗所湮没罢了;真正的英雄绝不是永没有卑下的情操,只是永不被卑下的情操所屈服罢了。

魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#112002/5/8 19:26:06
绝对不会。。例子可能伴随那次的硬盘物理损坏而消失了。。我回去找找看。。机会<1%



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#122002/5/8 23:53:46
根据要求制作了一个范例,传到public上了。
范例AVIFullScreen: 下载
需要用到tMsControls.u32和DirectMediaXtra1.50,自己到别处下载。其中tMsControls.u32为Authorware自带u32

编辑历史:[这消息被Rock编辑过(编辑时间2002-05-08 23:54:54)]


不歪

职务:普通成员
等级:3
金币:3.0
发贴:1236
#132002/5/9 19:08:35
我试过能做得不错!
使用DirectMediaXtra全屏时无法获取键盘和左键信息

谢谢Rock





qylhbyx

职务:普通成员
等级:2
金币:1.0
发贴:369
#142002/5/9 21:37:29
谢rock!
没想到会有这么多热心的朋友们来帮忙!
我回去试试!
彤庭玉
qylhbyx@163.com



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#152002/5/9 23:29:26
哈,别客气,以前因为有个朋友和我打赌不能实现而做过类似上面的范例,结果我赢得了一吨饭!