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); 
    } 
    } 
} 

を私はウェブで見つけたこのクラスを使用しています...そして、私は、コードのこの部分を使用して自分のWebフォームから再生しようとしている...

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でそれをするのに慣れていて、ちょうど5〜6行ほどです。

ありがとうございました。

答えて

1

残念ながら、使用しているコントロールがサーバー上でファイルを再生しようとしています。あなたの目標は、クライアントでそれを再生することです。これを行うには、Webページにhtml 5オーディオコントロールを追加してください(このlinkを参照)。あなたのウェブサイトからダウンロードできるように、オーディオファイルをどこかに置きます。オーディオコントロール内のそのパスを使用して、オーディオファイルをユーザーのWebブラウザに配信し、再生することができます。

<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(); 
関連する問題