问题标签 [mcisendstring]
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.
c# - C# ISynchronizeInvoke 问题
冒着听起来像个菜鸟的风险,我如何在 System.Timers.Timer 上实现 ISynchronizeInvoke?
我有一个调用 mciSendString 的类(没有 UI)。我有一个应该轮询当前状态的计时器。课堂上的所有调用都有效,但不是来自 timers elapsed 事件的调用。我已经追踪到它在不同的线程上,但我没有比这更进一步。我想我需要在与该类相同的线程上调用一个委托,但我还没有任何运气来完成它。
代码示例:
为了澄清起见,如果我从 SendCommand 调用(无论它是什么,播放、停止等),它会起作用,并且 Poll() 的结果是我所期望的。当计时器触发时,结果 (res) 是 263,即MCIERR_INVALID_DEVICE_NAME
. 失败调用的 threadID 与成功调用的不同,这就是为什么我认为我需要使用 ISynchronizeInvoke。
audio - 从 mciSendString 返回的奇怪错误 - 任何人都可以帮忙吗?
几个月前,我将录音添加到我正在开发的 MFC 应用程序中。结果证明这很容易,一两个小时后,代码就可以在我的 PC 和几台客户测试机器上运行(一台运行 XP,另一台运行 Vista)。然而,最近他们的一台测试机器升级了,现在录音功能无法正常工作。
开始录制的基本代码是..
这似乎工作正常。要停止录制,请执行以下代码..
发送“save mysound C:\filename.wav”指令时出现以下错误。返回的错误是..
但是我在发送的内容中看不到任何错误,并且该错误没有意义。该错误是否可能是因为程序正在尝试使用 PC 不支持的格式进行录制?
谢谢你的时间
伊恩
c# - mciSendString 无法保存到目录路径
VS C# 2008 SP1
我创建了一个记录和播放音频的小应用程序。但是,我的应用程序需要将波形文件保存到用户计算机上的应用程序数据目录中。
mciSendString 采用 C 样式字符串作为参数,并且必须采用 8.3 格式。但是,我的问题是我无法保存它。奇怪的是有时会,有时不会。然而,大多数时候都是失败的。但是,如果我直接保存到 C 驱动器,它第一次就可以正常工作。我使用了下面编码的 3 种不同的方法。
失败时我得到的错误号是 286。“文件未保存。请确保您的系统有足够的磁盘空间或网络连接完好”
非常感谢任何建议,
c# - mciSendString:包含空格的文件
如果我使用 mciSendString (winmm.dll) 并尝试读取包含空格的文件(例如 F:\MUSIC\(01) [VA]01.StimAxel - Restart(DJ X-VenomRemix).mp3),我得到一个错误代码
263。mciSendString 不能处理包含空格的文件。如何避免这个问题?
Pcommand = "status \"" + path + "\" length";
int ret = (int)mciSendString(Pcommand, sBuffer, sBuffer.Capacity, 0);
winapi - 如何指定与 mciSendString API 一起使用的声卡
我正在更新旧的 VB6 应用程序。过去,我围绕 mciSendString 命令编写了一个包装器,以便能够录制和播放音频。那时,计算机通常只有一个声卡。
现在,许多客户拥有多个声卡(通常是一个内置的和一个 USB 耳机)。
我似乎找不到 API 来指定与 mciSendString 一起使用的声卡。有人可以指出我正确的方向吗?
vb.net - 如何使用 mciSendString 调整视频大小
下面是我用来播放视频的代码。视频在面板上播放,但是当开始播放视频时,它只显示视频的一部分,如何将视频放在面板内?另外我怎样才能获得视频的默认大小(高度和宽度),以便我可以保持纵横比。
vb.net - 如何将其他控件放在视频之上?
我正在使用 mciSendString 播放视频,但我无法在视频顶部放置任何控件,例如标签或按钮。如何在视频顶部放置另一个控件?
下面是代码:
公开课形式1
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer,ByVal hwndCallback As Integer) As Integer
将文件名变暗为字符串
Dim retVal As Integer
之前:(按钮 1 可见)
之后:(按钮 1 不再可见)
vb.net - 如何使用 MCI 设备播放 mp4 视频
使用 mciSendString 命令,我可以播放 avi、mpeg、mp3 等,但无法播放 mp4。在这个网站上,它说只要我有正确的编解码器,我就可以播放任何视频。我可以使用其他媒体播放器(例如 vlc 播放器)播放 mp4。如何播放 mp4 视频或如何让 MCI 设备自动检测必要的驱动程序类型并播放视频?
vb.net - MCI 设备显示不正确的媒体长度
有时 MCI 设备显示某些特定媒体的媒体长度不正确。我在谷歌搜索了很多,我能找到的唯一解决方案是用 Delphi 编写的(Delphi 解决方案)我找不到任何 Delphi 到 C# 或 VB 转换器。这个问题有什么解决方法吗?我只希望我的媒体长度正确。
.net - .net mcisendstring - 使用资源而不是完整路径
好的,所以我使用 mciSendString 创建了一个 SOUND 类。我正在使用它来播放我正在制作的 RPG 风格游戏的音乐和其他声音文件。它有效,而且效果很好……但是。我的问题是它需要声音文件的完整路径才能正常工作(不确定这是否属实)。
以下是 mcisendstring 的一些怪癖:
- mcisendstring 讨厌空格,空格会导致崩溃(无法加载文件) - 添加引号
- 路径中的点会导致加载失败(仅点应用于扩展)
- 非常长的路径将导致加载失败(允许的最大字符数为 255)
- 相对路径会导致加载失败...(不能使用像 chicken.mp3 之类的东西...必须使用 C:\chicken.mp3)
- 如果repeat = true,.wav 文件将无法加载
我尝试将文件添加到我的资源并尝试设置资源的路径,但是它说:Value of type '1-dimensional array of Byte' cannot be converted to 'String'
.
任何帮助是极大的赞赏 :)
这是我的代码:
结束类
我需要的:
- 我需要以某种方式将 .mp3 文件作为可用于路径的资源,或者我需要一些其他方法,而不是让这些文件位于根驱动器或其他完整的计算机路径中。
我需要的东西的例子
改变
至
我如何播放声音:
(在另一个测试表上)
PS 我在我的项目中使用 XNA Graphics,我也有 NuGet 的 BizArk Core。因此,如果我可以使用其中任何一个,请告诉我如何使用其中任何一个来完成我需要做的事情。提前感谢您的帮助。