- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 TMediaPlayer 组件来播放音乐。
它适用于我的大多数轨道。但它不适用于某些轨道。当我想播放它们时,显示以下错误消息:
这是德语,但大致意思是:
在项目 pMusicPlayer.exe 中发生了 EMCIDeviceError 类的异常。消息:“启动 MCI 时出错。”。进程被停止。继续“单个命令/语句”或“开始”。
调用TMediaPlayer的Play过程后,程序直接退出。
以下文件发生此错误:
我已使用 128 kBit/s 的比特率对该文件进行编码,因此文件大小为 3.70 MB:工作正常!
第一个文件有什么问题? Windows Media Player 或其他程序可以毫无问题地播放它。
Delphi 的 TMediaPlayer 是否可能无法处理大文件(例如 > 5 MB)或高比特率文件(例如 > 128 kBit/s)?
我可以做什么来解决这个问题?
附加问题:为什么我不能使用 try/except 来阻止消息窗口?
try
Player.Play;
except
showmessage('Cannot be played');
end;
这不起作用。
最佳答案
好的,我找到了问题的根源。我用的是这个小Delphi MP3 Player Tutorial (你可以 download project there )来测试你的 MP3 文件,我得到了与你的 MP3 相同的错误。
经过一些测试,我发现其他 MP3 文件可以在该教程应用程序中正常播放。您的 MP3 与 Windows Media Player 和其他多媒体播放器配合良好。
是的,重新编码文件可以解决问题,但这不是真正的问题。问题来自 MP3 的元数据(ID3 标签),而不是声音编码本身。
我用了Mp3tag 仅删除文件上的标签,之后一切都运行良好,没有 EMCIDeviceError。
似乎 TMediaPlayer 可能会因某种格式的元数据而崩溃。在搜索过程中,我还看到了 TMediaPlayer 的错误报告,其中包含包含 JPEG 封面艺术的 MP3 文件。
我在论坛上回答有关 TMediaPlayer 的错误的大多数人都说 TMediaPlayer 确实过时了,而且通常很糟糕(我认为它已经有 10 年没有更新了)。如果您希望在应用程序中提供强大的 MP3 支持,请考虑使用 another component 。您还可以在 Delphi 应用程序中使用 Windows Media Player ActiveX。
对于有关 try/except 的其他问题,请尝试以下操作:
try
//load & play here
except
on E:Exception do
ShowMessage('Cannot be played! ' + E.Message);
end;
或者如果 TApplicationEvents 没有捕获错误,请考虑使用它。
关于Delphi:启动 MCI 时出现 EMCIDeviceError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2443527/
我有一个 mp3 播放器,它发送 MCI 命令来播放暂停/关闭/读取/停止音频文件等,我唯一不知道该怎么做的是发送一个 MCI 命令来告诉它播放下一个当前歌曲播放完毕时的歌曲。 歌曲在列表框中。我实际
我使用 TMediaPlayer 组件来播放音乐。 它适用于我的大多数轨道。但它不适用于某些轨道。当我想播放它们时,显示以下错误消息: 这是德语,但大致意思是: 在项目 pMusicPlayer.ex
我不断收到error 277 : a problem occurred in initializing MCI.使用 playsound 时模块。我基本上只是这样做了: from playsound
我正在播放一个 MIDI 文件,我有一个计时器可以定期检查别名的状态。当它停止时,执行: mciSendString(L"seek Music to start", NULL, 0, NULL); m
我正在尝试使用 playsound 来播放我的代码文件夹中的文件,但是每次我运行我的代码时,它似乎都能够调用该文件,但我总是收到此输出: playsound.PlaysoundException: E
I Used CREATE TABLE BOOKING(ORDER_NO VARCHAR(13) NOT NULL PRIMARY KEY DEFAULT '0'; CREATE TRIGGER TG
我在 Windows 中使用 git bash。我下载并解压了 play 框架并设置了路径,但是当我运行 activator new 时,它会出现以下错误 $ activator new java.l
我是一名优秀的程序员,十分优秀!