2016-06-14 6 views
0

Приветствуем всех и благодарим заранее.C# mp3 файл не звучит

Я пытаюсь воспроизвести mp3-файл в веб-форме. Я использую этот класс, который я нашел в сети ...

using System.Runtime.InteropServices; 
using System.Text; 

namespace MP3_Player 
{ 
    class MusicPlayer :System.IDisposable 
    { 
    public bool Repeat { get; set; } 

    public MusicPlayer(string filename) 
    { 
     const string FORMAT = @"open ""{0}"" type mpegvideo alias MediaFile"; 
     string command = System.String.Format(FORMAT, filename); 
     mciSendString(command, null, 0, 0); 
    } 

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

    public void open(string file) 
    { 
     string command = "open \"" + file + "\" type MPEGVideo alias MediaFile"; 
     mciSendString(command, null, 0, 0); 
    } 

    public void play() 
    { 
     string command = "play MediaFile"; 
     if(Repeat) command += " REPEAT"; 
     mciSendString(command, null, 0, 0); 
    } 

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

     Dispose(); 
    } 

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

... а потом, я пытаюсь играть с моей веб-формы, используя этот кусок кода ...

private MusicPlayer player; 
... 
    private void Detalles_Click(object sender, EventArgs e) 
    { 
     ... 
     Thread thread = new Thread(Musica); 
     thread.SetApartmentState(ApartmentState.STA); 
     thread.Start(); 
     thread.Join(); 
    } 

    private void Musica() 
    { 
     if(player != null) 
     { 
      player.stop(); 
     } 
     player = new MusicPlayer("~/Mantenimiento/MP3/ejemplo.mp3"); 
     player.play(); 
    } 

... но не работает. Пожалуйста, может кто-нибудь сказать мне, что я делаю неправильно, это пропало или что-то еще?

Кстати, есть ли более простой способ воспроизведения звука? Я привык делать это в Android, и это всего лишь пять или шесть строк кода.

Благодарим вас за внимание и помощь.

ответ

1

К сожалению, элемент управления, который вы используете, пытается воспроизвести файл на сервере. Ваша цель - воспроизвести его на клиенте. Для этого добавьте аудио-контроль html 5 на свою веб-страницу (см. Это link). Поместите аудиофайл где-нибудь, чтобы его можно было загрузить с вашего сайта. Используйте этот путь в аудиоконтроллере, чтобы доставить аудиофайл в веб-браузер пользователя, чтобы затем воспроизвести его.

<audio controls id='audioTagId'> 
    <source src="path to media file.mp3' /> 
    <p>Your user agent does not support the HTML5 Audio element.</p> 
</audio> 

Вы можете использовать javascript для запуска управления по желанию на основе действия.

var v = document.getElementById("audioTagId"); 
v.play();