2017-01-21 2 views
1

Ich habe ein Programm in der Lage MP3-Dateien so spielen:Volumen mit einer Mediendatei

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

Und ich mag Volumen bar meine Mediendatei so etwas wie hinzufügen:

Und wenn ich nach rechts gehe, um den Laut lauter zu machen und wenn ich sonst nach links gehe.

Antwort

0

To Set Volume Bitte versuchen Sie etwas wie folgt aus:

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

Sie Werte zwischen 0 und 1000 in SetVolume, es zu benutzen

in App verwenden, können Sie festlegen Volume aufrufen müssen Sie, wenn Ändern Sie den Lautstärkereglerwert.

Nehmen wir an, dass Sie auf dem Player-Formular Trackbar-Steuerelement haben, dann müssen Sie Scroll-Ereignis verwenden. Zum Beispiel:

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

komplette Form-Klasse:


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

Screen:

form with trackbar control

+0

Wie implementiere ich es, wie ich will? –

+0

jetzt kann ich nichts hören Ich habe dies zu meinem Bildlaufereignis in meiner Trackleiste hinzugefügt: 'private void trackBar1_Scroll (Objektabsender, EventArgs e) { _mp3player.SetVolume (trackBar1.Value); } ' –

+0

Sie müssen Mindestwert auf 0 und maximalen Wert auf 1000 für die Trackbar –