问题标签 [windows-media-player]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 在 WMP 媒体库中查找媒体项目的更有效方法?
我在使用 .NET Framework 3.5 SP1 的 VB.NET 中使用 Windows Media Player 12 (wmp.dll) 提供的 WMPLib 组件。
我正在尝试根据媒体库的名称从媒体库中检索媒体项目(假设没有重复的名称)。目前,我正在抓取整个媒体库,并循环浏览每个媒体项目,并在找到正确的媒体项目时退出循环。这很好用(除非找不到具有该名称的媒体项目),但我希望有一种更有效的方法来做到这一点。
到目前为止,这是我的代码:
所以我真正想要的是一种优化 findTrack() 的方法来完成它的工作,而无需遍历整个媒体库(这可能是巨大的)。有人有线索吗?
c++ - 如何让 windows 媒体播放器转到播放列表中的上一首歌曲?
我正在用 C++ 编写一个简单的 Windows 应用程序,它将能够向 Windows 媒体播放器发送命令。我的问题是我希望我的应用程序移至播放列表中的上一首歌曲。
IWMPControls::previous() 似乎可以完成这项工作,但其行为与 msdn 中所写的不同。实际上,此功能将当前媒体倒回到开头,然后(如果当前位置小于 2-3 秒)切换到上一首歌曲。
我想实现两个不同的按钮(请不要问我为什么:)) - 一个用于倒退到开头,一个 - 移动到上一首歌曲。有没有简单的方法通过 IWMPControls(或任何其他 WMP 相关的 COM 接口)来做到这一点?
ps 如果我能得到当前歌曲在列表中的位置(索引),我可以处理这个问题。但就我阅读 MSDN 而言,在我看来,没有简单的方法可以从播放列表中获取当前项目索引......
vb.net - 如何以编程方式关闭视频加速
我在数百台计算机(专用)上运行的程序中使用 Windows Media Player OCX。
我发现当视频加速打开到“完整”时,在某些计算机上会导致视频无法正确播放,电影之间出现绿色方块等。将加速度转到“无”,一切都很好。
该程序在大约 800 台计算机上运行,它们将自动更新我的程序。所以我想在我的程序的启动中添加它关闭视频加速。
问题是,如何以编程方式关闭视频加速?
所有计算机都运行 XP 和至少第二个服务包。我需要很长时间才能手动登录所有这些计算机并更改该设置,这就是为什么我希望程序能够为我自动完成它。
.net - 使用基于 .net 的应用程序分发 windows media player 11
我正在使用 .NET 3.5 SP1 开发基于 WPF 的应用程序,该应用程序需要在最终用户计算机上安装 Windows Media Player 11。对于无痛安装,我希望设置应该处理所有事情。是否有任何可再发行的 WMP 11 软件包可用?
换句话说,解决这个问题的最佳选择是什么?
windows - 为 Windows 媒体播放器预览 JPG
我想为我的简单 .wmv 播放器提供 JPG 预览。有任何想法吗?这里是...
internet-explorer - 是否可以在 Windows 媒体播放器的 Chrome/Firefox 中隐藏用户控件?
我正在尝试使用 Chrome 中的 Windows Media Player 删除用户控件(仅显示视频帧),但没有成功。
我使用的代码:
但没有成功。该控件在 Chrome 和 Firefox 中仍然可见,但在 IE8 中有效。
javascript - 嵌入到 HTML 中的 Windows 媒体播放器控件 - 开始播放后更改控件的大小
我使用以下 html 在 IE 8 中呈现的网页上显示媒体播放器:
开始播放后,控件的大小保持不变。
但是,当我在 JavaScript 中动态创建控件时,在启动视频后,控件会增加到视频的大小。这是代码:
这是一个错误还是我错过了什么?如何保留与控件原始大小相同的视频大小?
谢谢你。
PS顺便说一句,如果我在JavaScript中以不同的顺序设置控件的属性(“type”之后的“classid”),那么控件不会呈现。你知道什么可能是一个问题。
.net - MediaElement 可以播放哪些类型的视频?
我正在寻找有关决定MediaElement
可以播放的媒体格式的详细信息,我似乎找不到任何确定的来源。我在某处读过,如果它可以在 WMP 中播放,那么MediaElement
可以播放它。这是真的?如果是,那么我的下一个问题是我在哪里可以找到 WMP 的功能和限制?WPFMediaElement
和 WMP 之间的关联在哪里?我正在寻找对 WPF 中这些组件和视频播放的更好理解,到目前为止,我一直在努力在网上找到任何东西。
internet-explorer - 为什么当通过 Internet Explorer 使用 Windows Media Player 时,有时无法在内容请求中包含适当的 cookie?
我们有一个托管在 IIS6 中的站点,我们使用 .NET 1.1 框架构建。访问此站点的用户仅使用 Internet Explorer 并使用 Forms 身份验证登录。在站点内,用户可以导航到其中嵌入了 iFrame 的特定页面。此 iFrame 指向托管在同一服务器上的另一个虚拟目录,而这第二个虚拟目录只是流式传输电影文件。假设用户在他们的机器上安装了 Windows Media Player 并对其进行了配置,以便 Windows Media Player 成为默认的电影播放器,当用户导航到带有 iFrame 的页面时,Windows Media Player 会弹出一个新窗口并播放电影。
我们最近升级了我们的软件以使用 .NET 3.5 框架。但是,我们注意到我们的电影文件不再播放。相反,我们收到一条消息,表明 Windows Media Player 无法连接到服务器。
我已经继续使用 Fiddler 对客户端和服务器计算机之间的网络流量进行了一些调查,这些是在工作场景中发生的步骤:
1) Internet Explorer 向服务器请求电影文件。请求标头包含正确身份验证和会话标识所需的 cookie。
*GET MYSITE HTTP/1.1
接受:image/jpeg、image/gif、image/pjpeg、application/x-ms-application、application/xaml+xml、application/x-ms-xbap、application/vnd.ms-excel、 application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, /
Referer: MYREFERRER
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;InfoPath.2)
接受编码:gzip,放气
主机:MYHOST 连接:保持活动
饼干:a99fd71e-eb1b-4750-a391-5ad8cfe32068=800edb77-9649-4f93-9db9-98d678a3b166;ASP.NET_SessionId=uf1cr1bflwly0nmhbm1wnb55;EDDS=581A46E81C8DB0B475F1AFE00545F9B157A377BD31DF65BB2AEF7D1B293BDE9E178409FF251CF49F109FDC601C48F15A5FCDE1A29A18E6853357887698A01E7A2CC3690ECE98C464DE1359D796B60BE969F875EF08F638A04CDED78A309ACD6E9732F8C3751A2B0A411ADFA91B0AE567*
2)服务器使用cookies验证用户的请求,然后返回电影。返回的状态码是 200。
HTTP/1.1 200 OK
日期:2010 年 8 月 11 日星期三 21:30:55 GMT
服务器:Microsoft-IIS/6.0
X-Powered-By:ASP.NET
X-AspNet-Version: 1.1.4322
内容长度:3934146
接受范围:字节
内容处置:内联;文件名 = AS000006.wmv
上次修改时间:2010 年 8 月 10 日星期二 21:24:49 GMT
ETag:“MyExampleFileID”
缓存控制:私有
内容类型:应用程序/八位字节流
3) Windows Media Player 向服务器请求电影文件。同样,请求标头包含 cookie。但是,这次请求包括对字节 8192- 的 Range 请求。
*GET MYSITE HTTP/1.1
Accept: /
User-Agent: Windows-Media-Player/12.0.7600.16415
Accept-Encoding: gzip, deflate
Range: bytes=8192-
unless-Modified-Since: Tue, 10 Aug 2010 21:24: 49 GMT
If-Range: "MyExampleFileID"
Connection: Keep-Alive
Host: MYHOST
Cookie:ASP.NET_SessionId=uf1cr1bflwly0nmhbm1wnb55;EDDS=581A46E81C8DB0B475F1AFE00545F9B157A377BD31DF65BB2AEF7D1B293BDE9E178409FF251CF49F109FDC601C48F15A5FCDE1A29A18E6853357887698A01E7A2CC3690ECE98C464DE1359D796B60BE969F875EF08F638A04CDED78A309ACD6E9732F8C3751A2B0A411ADFA91B0AE567; a99fd71e-eb1b-4750-a391-5ad8cfe32068=800edb77-9649-4f93-9db9-98d678a3b166*
4)服务器使用cookie信息对用户的请求进行认证,然后返回文档。返回的状态码是 206。
HTTP/1.1 206 Partial Content
Date: Wed, 11 Aug 2010 21:30:57 GMT
服务器: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version :1.1.4322
内容范围:字节 8192-3934145/3934146
内容长度:3925954
接受范围:字节
内容处置:内联;文件名 = AS000006.wmv
上次修改时间:2010 年 8 月 10 日星期二 21:24:49 GMT
ETag:“MyExampleFileID”
缓存控制:私有
内容类型:应用程序/八位字节流
当事情不起作用时,它看起来像这样:
1) Internet Explorer 向服务器请求电影文件。请求标头包含 cookie。
*GET MYSITE HTTP/1.1
接受:image/jpeg、image/gif、image/pjpeg、application/x-ms-application、application/xaml+xml、application/x-ms-xbap、application/vnd.ms-excel、 application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, /
Referer:MYREFERRER Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;InfoPath.2)
接受编码:gzip,放气
主机:MYHOST
连接:保持活动
曲奇:a99fd71e-eb1b-4750-a391-5ad8cfe32068=7ac4710e-1434-43c9-b521-bdf30328e2fb;ASP.NET_SessionId=glytwo55ztohig451qrf1355; EDDS=CFC5EAE69F6D6CDD0A1D53632F01629F8AC8F4901A6106DD26A0A9F4E1E0B0EC9D4B1B78FBEF5C504A54E6B1A43F576CD846ADD3D394DF257EBBF982BED5E99900116945191268E985ED923DAA78DF4FBD68B09FF3B4D14D7092FB846012E5F464D9EBC4BA834235839A397A4F00B548D353A1AB9B67F6F960E26FC655D19D4B89347DFA2BCC7101E2397AC7EB0F105025E5A21253C0E619E809C1D9B64E53E8*
2)服务器使用cookies验证用户的请求,然后返回电影。返回的状态码是 200。
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 3934146
Content-Type: application/octet-stream
Last-Modified: Wed, 11 Aug 2010 15:29:44 GMT
Accept -范围:字节
ETag:“MyExampleFileID”
服务器:Microsoft-IIS/7.5
X-AspNet-Version:2.0.50727
Content-Disposition:内联;文件名 = AS000006.wmv
X-Powered-By:ASP.NET
日期:2010 年 8 月 11 日星期三 21:36:45 GMT
3) Windows Media Player 向服务器请求电影文件。该请求不包含任何 cookie。服务器无法对用户进行身份验证,并且电影没有被发送下来。
*GET MYSITE HTTP/1.1
Accept: /
User-Agent: Windows-Media-Player/12.0.7600.16415
Accept-Encoding: gzip, deflate
Range: bytes=8192-
unless-Modified-Since: Wed, 11 Aug 2010 15:29: 44 GMT
If-Range: "MyExampleFileID"
Connection: Keep-Alive
Host: MYHOST*
所以,在这一点上,我确切地知道它为什么不起作用。来自 Windows Media Player 的请求不包含任何 cookie,因此我们的服务器不会验证请求并发送数据。我完全不明白的是,为什么 Windows Media Player 在发出请求时没有使用这些 cookie。
以上所有请求都是从同一台机器向两个不同的站点发出的,所以我知道这不是不同版本的 Windows Media Player 的问题。我已经在具有不同操作系统和不同版本 IE 的几台不同机器上重现了该行为,因此它似乎与特定机器无关。我已经尝试恢复到 IIS6 而不是为新站点使用 IIS7,这也没有什么不同。我一直认为它必须是我的代码中的某些东西,但我什至不知道从哪里开始寻找。
我的问题是:有没有人真正了解 Internet Explorer 如何将 URL 信息传递给 Windows Media Player,并可能为我指出正确的方向来解决这个问题?在这一点上,我唯一的另一个选择是向 Microsoft 支持开一张票……坦率地说,在过去的几年里,我在他们的支持团队中的经验并不是最佳的。任何帮助将不胜感激!
编辑:使用进程资源管理器,我已经能够证明 IE 现在根本没有向 Windows Media Player 提供 cookie 信息。不过,我仍然没有更接近理解原因。