【发布时间】:2015-05-08 17:53:11
【问题描述】:
我正在尝试从 Firemonkey XE7 Windows 应用程序播放 mp3 文件。通过放置一个 TMediaPlayer 组件,为其分配一个 .mp3 文件,然后播放它,这应该是一项简单的任务。但是,我收到以下错误:
Application Error
Exception EReadError in module MediaPlayerTest.exe at 00000000000012139E.
Error reading MediaPlayer1.FileName: Unsupported media file testfile.mp3.
我也尝试过 .wav,但也没有用。 (已安装音频编解码器,媒体文件可以通过windows media player成功播放。)
然后我尝试在另一台计算机上编译相同的程序,它可以成功编译并且可以播放 mp3。
有谁知道为什么它不能在一台计算机上编译而在另一台计算机上编译?
【问题讨论】:
-
“在另一台计算机上编译相同的程序” - 在有问题的计算机上编译然后在正常工作的计算机上运行呢?那样有用吗?这根本不应该是编译错误,而是运行时错误。 “不编译”对您提供的错误消息毫无意义。你明白“编译”是什么意思吗?
-
您的问题不清楚。它显然在两台计算机上编译,或者您无法在一台计算机上成功运行它而在另一台计算机上出现运行时错误。 无法编译的代码不会出现运行时错误。
-
很抱歉我没有完全理解编译的意思,因为我通常只是简单地点击运行。如果我单独执行,程序会编译但不会运行(上面显示的例外情况除外)。如果程序在另一台计算机上编译并在之前有问题的计算机上运行,它仍然可以完美运行(在两台计算机上播放声音)。
-
听起来你需要更多地了解编程的工作原理。似乎(基于 cmets)您在表单的构造函数中运行了代码,该构造函数试图立即加载和播放文件。我们看不到您的代码,因此我们不知道您到底在做什么。您需要为我们提供一个非常简单的简短程序(代码)来重现您的问题。即便如此,这似乎是一个我们很难追查的问题,即使我们拥有您的完整源代码。这肯定与 Windows 如何识别文件类型有关(根据您的问题描述)。
-
此页面 (docwiki.embarcadero.com/Libraries/XE7/en/FMX.Media.TMediaPlayer) 建议您需要使用 wav。这个 (docwiki.embarcadero.com/Libraries/XE7/en/…) 表明 mp3 很好。我想你需要知道这个平台的编解码器支持来自哪里。
标签: delphi media-player firemonkey delphi-xe7