注册 登录
编程论坛 VFP论坛

请教吹水佬版主关于webbrowser问题?

wxzd123 发布于 2023-01-11 09:28, 2179 次点击
请教用webbrowser打开网页
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程()</title>
</head>
<body>

<video width="320" height="240" controls autoplay>
  <source src="movie.mp4" type="video/mp4">
</video>

</body>
</html>
如何用VFP代码控制播放与停止等操作?谢谢
21 回复
#2
吹水佬2023-01-11 13:21
webbrowser要提高内核版本
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
只有本站会员才能查看附件,请 登录
#3
wxzd1232023-01-11 14:07
版主不升级也能播放,但要用那个播放页面的控制按钮,不是VFP 代码,不升级不可以吗?
#4
吹水佬2023-01-11 17:58
以下是引用wxzd123在2023-1-11 14:07:15的发言:

版主不升级也能播放,但要用那个播放页面的控制按钮,不是VFP 代码,不升级不可以吗?

你用的高版本IE就可能支持,但IE已经变古董了。
要在VFP控制web页面控件,只能通过JS脚本代码,要写HTML和JS代码。
只是一个媒体播放器,要用到 VFP+HTML+JS,有点烦杂。
既然要用VFP来控制媒体播放器,可以不用web控件,直接用OCX、DLL媒体播放控件。
如:免费的 APLAYER 控件,这控件也有点可玩性,兼容大部分视频和音频的解码。

[此贴子已经被作者于2023-1-11 17:59编辑过]

#5
shizi02023-01-11 18:17
在尝试miniblink,感觉比较好用,卡在下载回调,回调正常,回调返回崩溃。不知道是不是node.dll版本问题。
#6
吹水佬2023-01-11 19:28
以下是引用shizi0在2023-1-11 18:17:43的发言:

在尝试miniblink,感觉比较好用,卡在下载回调,回调正常,回调返回崩溃。不知道是不是node.dll版本问题。

VFP不能直接使用node.dll带CALLBACK函数的回调功能。
miniblink是用纯C写的,可简单将带CALLBACK的函数封装一个DLL给VFP,自定义个消息反弹给VFP也可以。
#7
wxzd1232023-01-11 20:57
回复 4楼 吹水佬
版主好,这里想是A机器控制B机器播放那段网页代码,如果要在vfp中写HTML和JS代码也不能实现加入到那段网页代码中,可控制webbrowser中网页video对象事件来实现,谢谢
#8
吹水佬2023-01-11 21:35
回复 7楼 wxzd123
不太明白,A机器控制B机器播放具体是什么神操作?
#9
wxzd1232023-01-11 21:50
回复 8楼 吹水佬
版主好,A机器是控制机,B机器是连接投影屏幕的机器,为了不让B机器都投影看到操作过程,在A机器上通过WinSock向b机器传送信息,B机器接收后就控制播放视频,这这样实现的,谢谢
#10
吹水佬2023-01-12 05:36
回复 9楼 wxzd123
就好像投屏效果吗?由A投送B,不用编程。
#11
wxzd1232023-01-12 09:02
你好,不是投屏,是A机器上有VFP 程序,控制B机器的VFP程序,除了视频播放还有其它功能,在A机器操作来改变B机器上VFP都程序界面,在B机器上只能看到操作结果,看不到操作过程。
原来HTML中视频用这个插件
只有本站会员才能查看附件,请 登录

在VFP中播放代码:
视频播放
    Thisform.Web1.Document.getElementById('WindowsMediaPlayer1').Controls.Play()
视频暂停
    Thisform.Web1.Document.getElementById('WindowsMediaPlayer1').Controls.Pause()
视频停止
    Thisform.Web1.Document.getElementById('WindowsMediaPlayer1').Controls.stop()
#12
吹水佬2023-01-12 10:48
回复 11楼 wxzd123
A、B两端都是用VFP写的程序,为什么还要涉及到web?
直接用VFP写C/S架构就没那么复杂,简单得多,性能效率也相对高,A可以通过远程控制B的动作。
#13
wxzd1232023-01-12 14:37
版主好,是显示各种试题,有图片,文字,音频,视频等是用网页形式保存的,在表单上用webbrowser来显示的
#14
吹水佬2023-01-12 14:44
回复 13楼 wxzd123
不好理解
最好给个实际的例子,具体操作过程是怎样。
#15
wxzd1232023-01-12 17:29
只有本站会员才能查看附件,请 登录

请版主给看看,辛苦了,谢谢
#16
吹水佬2023-01-12 17:51
以下是引用wxzd123在2023-1-12 17:29:43的发言:


请版主给看看,辛苦了,谢谢

你这只是一个媒体播放的web代码,问题不是要A控制B吗
不是简单问题,看代码就没必要。
主要是思路,明白了具体操作过程,就是看怎样去实现。
#17
wxzd1232023-01-12 19:19
这里只是简化一下,如果控制代码能实现,就可以实现A控制B了
#18
吹水佬2023-01-13 07:17
以下是引用wxzd123在2023-1-12 19:19:54的发言:

这里只是简化一下,如果控制代码能实现,就可以实现A控制B了

“控制”也要先明白具体的控制过程和目的吧
#19
my23182023-01-13 08:30
以下是引用wxzd123在2023-1-12 19:19:54的发言:

这里只是简化一下,如果控制代码能实现,就可以实现A控制B了

可以考虑套连接通信,a发送指令给b,b执行指令,b执行完再通知a。
#20
吹水佬2023-01-13 08:46
以下是引用my2318在2023-1-13 08:30:17的发言:


可以考虑套连接通信,a发送指令给b,b执行指令,b执行完再通知a。

这样子VFP实现也简单,A、B端都用VFP写的话,直接用C/S架构,无需再写web代码
#21
wxzd1232023-01-13 09:06
实际就是在网页外面用vfp代码控制网页而已。
#22
wxzd1232023-01-13 09:19
这是js写的播放代码
只有本站会员才能查看附件,请 登录

在vfp中这样写就没反应
Thisform.Web1.Document.getElementById("vid").Play()
1