2011-10-03 98 views
2

我在Delphi 2007中使用了Clootie DirectShow9頭文件。我創建了一個用於播放音頻和視頻的包裝組件。一切都很好,直到我找到一張專輯封面的MP3。像這樣的mp3文件就不會播放。當我調用pMediaControl.Run時,我沒有從我的代碼中收到錯誤消息。 pMediaControl是IMediaControl。他們只是不開始玩。我很多其他的MP3文件都沒有用專輯封面編碼,他們播放的很好。必須有我失蹤的東西,但我無法弄清楚。當MP3具有專輯封面編碼時,DirectX的MP3播放問題

這些藝術編碼的mp3文件在WMP和Winamp中在同一臺PC上播放OK。

有人可以爲我闡明這一點嗎?

感謝

+0

經過我的代碼挖掘後,似乎調用** hr:= pGraphBuilder.RenderFile(FFileName,nil); ** 是問題發生的地方。在此之後,hr的值是-2147220890,看起來像是VFW_E_NO_TRANSPORT。 – John

回答

1

我也打的一個(或者是它VFW_E_UNSUPPORTED_STREAM)。 這是因爲元數據被破壞,或者圖像大小非常大。 (編輯Winamp中的Tag有時會有所幫助)

+0

謝謝。不幸的是編輯文件不是一個選項。該應用程序是部分媒體播放器,並且必須能夠在不更改文件的情況下播放專輯封面的客戶MP3文件。 – John

+0

你可以試試Media Foundation,如果這是一個選項。在處理這些「奇怪」文件方面做得更好 –

+0

我讀了一些關於Media Foundation的文章,看起來它只能在Vista和更高版本上使用。我現在需要Windows XP支持。 我打算使用bass.dll和delphi包裝單元。我已經做了一些測試,所有我的問題mp3文件都是用低音播放的。 我想遠離使用第三方組件/ DLL,但時間到完成這個項目變得越來越渺茫。 http://www.un4seen.com 下載包含許多Delphi樣本。到目前爲止,圖書館工作得很好。 – John

0

我讀了一點關於Media Foundation的內容,看起來它只能在Vista和更高版本上使用。我現在需要Windows XP支持。

我打算使用bass.dll和delphi包裝單元。我已經做了一些測試,所有我的問題mp3文件都是用低音播放的。

我想遠離使用第三方組件/ DLL,但我的時間來完成這個項目變得越來越渺茫。

http://www.un4seen.com

下載包括許多德爾福樣本。到目前爲止,圖書館工作得很好。