2011-03-07 139 views
0

我使用NAudio 將幾個mp3文件合併爲一個Windows Azure產品。它在開發環境中工作正常,但是一旦我將其上傳到Azure,就會出現「No Drive Calling acmFormatSuggest」錯誤。Windows Azure/Windows Server 2008 R2中的NAudio

下面是我在Windows Azure Box上迄今爲止所做的事情的列表,試圖解決這個問題。 (i)啓用Windows音頻服務 (ii)安裝受Windows Media Player支持的Fraunhofer IIS MPEG Layer-3 ACM編解碼器。 (iii)安裝了Lame Mp3編解碼器 (iv)安裝了K-Lite編解碼器

該進程本身是一個工作進程,並且正在完全信任下運行。代碼本身讀取blob中的mp3文件,使用本地文件將它合併到一起,並將其恢復到blob中。

任何想法或建議將大有裨益。

回答

1

看到我的回答this question。此外,您需要確保您正在運行32位進程,因爲大多數ACM都是32位。

4

我這個作戰自己,這些都是要遵循的步驟:

手動:

  1. 通過服務器管理器,您可以添加Windows功能「桌面體驗」
  2. 重新啓動服務器根據要求(您必須使其生效)
  3. 您現在可以使用NAudio使用的常規Mp3音頻編解碼器(您不需要Dmo一個)

自動(Azure的部署):

在Azure中添加這些命令到STARTUP.CMD啓動任務爲自己的角色:

echo Begin Install Desktop Experience Feature (for sound codec) >> startup.log 
ServerManagerCMD.exe -install Desktop-Experience -restart -resultPath  desktopexperience_results.xml 
REM This return code indicates the feature is already installed. Reset the errorlevel to zero using the verify command. 
IF %ERRORLEVEL% EQU 1003 (
    echo Windows feature is already installed >> startup.log 
    VERIFY > NUL 
) 
echo End Install Desktop Experience Feature >> startup.log 

注意,重要的是這個腳本返回一個結果代碼(%ERRORLEVEL%)爲零(上面會這樣做,禁止任何實際問題)。

ServerManagerCMD在不需要安裝該功能時可能會返回非零錯誤代碼(可能是因爲它已經從先前的Startup.cmd運行中安裝),所以我們明確需要檢查該代碼(1003 )並使用VERIFY> NUL將其靜音。

+0

這對我有效。不幸的副作用是需要重新啓動服務器。 http://stackoverflow.com/questions/18500708/reading-mp3-file-using-naudio-dll-on-windows-server-2008-r2-when-media-player-我指出了我的方向,重啓方法。 – 2013-09-16 17:33:33

相關問題