2017-01-21 9 views
1

にボリュームを追加します。私はこのようなmp3ファイルを再生することができるプログラム作っ:は、メディアファイル

class Mp3Player : IDisposable 
{ 
    public bool Repeat { get; set; } 

    public Mp3Player(string fileName) 
    { 
     const string FORMAT = @"open ""{0}"" type mpegvideo alias MediaFile"; 
     string command = String.Format(FORMAT, fileName); 
     mciSendString(command, null, 0, IntPtr.Zero); 
    } 

    public void Play() 
    { 
     string command = "play MediaFile"; 
     if (Repeat) command += " REPAT"; 
     mciSendString(command, null, 0, IntPtr.Zero); 
    } 

    public void Stop() 
    { 
     string command = "stop MediaFile"; 
     mciSendString(command, null, 0, IntPtr.Zero); 
    } 

    [DllImport("winmm.dll")] 
    private static extern long mciSendString(string strCommand, StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback); 

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

をそして、私は私のメディアファイルに次のようなものに音量バーを追加したい:

そして、私が音を大きくするために右に行くなら、そうでなければ私は左に行く。

答えて

0

このような何かしようと、ボリュームをしてください設定するには:あなたはときに設定した音量を呼び出す必要があるアプリでそれを使用するにはSetVolume

にの間の値を使用することができます

public void SetVolume(int volume) 
{ 
    var command = "setaudio MediaFile volume to " + volume.ToString(); 
    mciSendString(command, null, 0, IntPtr.Zero); 
} 

をボリュームコントロールの値を変更します。

プレーヤーフォームにトラックバーコントロールがあると仮定すると、スクロールイベントを使用する必要があります。たとえば、次のように

private void trackBarVolume_Scroll(object sender, EventArgs e) 
{ 
    _mp3Player.SetVolume(trackBarVolume.Value); 
} 

完全な形クラス:


public partial class Form1 : Form 
    { 
     private Mp3Player _mp3Player = new Mp3Player(@"C:\music.mp3"); 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      _mp3Player.Play(); 
     } 


     private void trackBarVolume_Scroll(object sender, EventArgs e) 
     { 
      _mp3Player.SetVolume(trackBarVolume.Value); 
     } 
    } 

画面:

form with trackbar control

+0

どのように私は私がしたいどのようにそれを実装していますか? –

+0

今私はトラックボール上のスクロールイベントにこれを追加しても何も聞こえません: 'private void trackBar1_Scroll(object sender、EventArgs e) { _mp3player.SetVolume(trackBar1.Value); } ' –

+0

トラックバーの最小値を0に、最大値を1000に設定する必要があります。 –

関連する問題