2014-04-24 100 views
0

我需要關於MP3播放器文件執行的幫助。我在互聯網上搜索,我發現只有當我需要從外部目錄獲取mp3文件時,才能使用winmm.dll libreary。我需要修改它爲我的應用程序的內部目錄。Windows Phone開發:使用winmm.dll播放內部mp3文件

讓我們顯示的代碼:

我創建MP3播放機類這樣的:

class Mp3Player : IDisposable 
{ 
    [DllImport("winmm.dll")] 
    private static extern long mciSendString(string lpstrCommand, StringBuilder lpstrReturnString, int uReturnLength, int hwndCallback); 

    public void open(string file) 
    { 
     const string FORMAT = @"open ""{0}"" type MPEGVideo alias MyMp3"; 
     string command = String.Format(FORMAT, file); 
     mciSendString(command, null, 0, 0); 
    } 

    public void play() 
    { 
     string command = "play MyMp3"; 
     mciSendString(command, null, 0, 0); 
    } 

    public void stop() 
    { 
     string command = "stop MyMp3"; 
     mciSendString(command, null, 0, 0); 
    } 

    public void Dispose() 
    { 
     string command = "close MyMp3"; 
     mciSendString(command, null, 0, 0); 
    } 

    public double Duration() 
    { 
     string command = "status MyMp3 length"; 
     double bho = mciSendString(command, null, 0, 0); 
     return bho; 
    } 

並呼籲開放內部文件在這裏:

var soundfile = "Assets/audio/myaudio.mp3"; 
private Mp3Player _mp3player = new Mp3Player(); 
_mp3player.open(soundfile); 
_mp3player.play(); 

這給我上的錯誤該文件的開放,所以我敢肯定,問題出在我發送給該類的目錄路徑中。我試了一些版本,但沒有人工作,並在互聯網上找不到任何幫助我。你們中的一些人可以說我做正常工作的正確途徑?

非常感謝大家。

對不起,我真的很糟糕的英語。

回答

0

根據Windows Mobile上的this forum,所有波形音頻函數都在'coredll.dll'中實現。使用此DLL而不是'winmm.dll'。

+0

我嘗試改變它,但我仍然認爲問題出在我寫的路徑上:「Assets/audio/myaudio.mp3」,你知道正確的路徑嗎? – Roberto