none
Mehrere mp3 gleichzeitig öffnen RRS feed

  • Frage

  • Hallo allerseits!

    Ich habe vor einiger Zeit einen mp3 Player geschrieben und habe 2 Fragen dazu.
    1.) Wie kann ich mehrere mp3 Dateien welche ich im Explorer ausgewählt habe mit Enter öffnen.
    Genauer gesagt wenn ich eine Datei auswähle und Enter drücke wird der Player gestartet.
    Jedoch wenn ich mehrere ausgewählt habe und Enter drücke dann wird der Player um die Anzahl der Dateien geöffnet.
    Also bsp. wenn 10 Dateien gewählt wurden dann wird der Player 10x gestarte. Was muß ich tun damit alle in einem Player gestartet wird?

    2.) Das zweite Problem ist das ich mit MCI den Bass nicht ändern kann obwohl das "theoretisch laut msdn" gehen sollte.
    Hier mal der von mir benutzer Code.

    public int Bass
            {
                get
                {
                    StringBuilder buffer = new StringBuilder(261);
                    int result = mciSendString("status " + this.alias + " bass",
                       buffer, buffer.Capacity, IntPtr.Zero);
                    if (result != 0)
                    {
                        throw new MciException("Fehler beim Lesen von 'Bass': " +
                           GetMciError(result));
                    }
                    return int.Parse(buffer.ToString());
                }
    
                set
                {
                    int result = mciSendString("setaudio MediaFile bass to " + value, null, 0, IntPtr.Zero);
                    if (result != 0)
                    {
                        throw new MciException("Fehler beim Aufruf von 'SetBass': " +
                           GetMciError(result));
                    }
                }
            }


    Danke im vorraus und
    Lg String.Rise

    Sonntag, 25. März 2012 10:33

Alle Antworten

  • Ahja, ich habe noch vergessen zu erwähnen das ich mit dem Player playlist erstellen und laden kann und auch das Abspielen mehrere Titel auf einer Liste mittels Drag&Drop funktioniert. So im grunde genommen passt es eh bis auf die 2 "Schönheitsfehler".

    Lg
    String.Rise

    Montag, 26. März 2012 19:52
  • 2.) Das zweite Problem ist das ich mit MCI den Bass nicht ändern kann obwohl das "theoretisch laut msdn" gehen sollte.

    Hallo String.Rise,

    Versuch erstmals den String zu erstellen und nachher an mciSendString weitergeben.

    public int VolumeBass 
    { 
        get 
        { 
          return bVolume; 
        } 
        set 
        { 
            if (Opened && (value >= 0 && value <= 1000)) 
            { 
              bVolume = value; 
              Pcommand = String.Format("setaudio MediaFile bass to {0}", bVolume); 
              if ((Err = mciSendString(Pcommand, null, 0, IntPtr.Zero)) != 0) OnError(new ErrorEventArgs(Err)); 
            } 
        } 
    }

    Grüße,

    Robert


    Robert Breitenhofer, MICROSOFT  Twitter Facebook
    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Mittwoch, 28. März 2012 11:14
    Moderator
  • Hallo Robert,
    danke vorerst für deine Antwort jedoch hat das auch nichts gebracht.
    Ich bekomme beim auslesen den ErrorCode 263 und beim setzen 261.
    Habe mittlerweile einige Varianten ausprobiert und keines davon funktioniert.

    string Pcommand = String.Format("setaudio " + this.alias + " bass to {0}", bas);
    string Pcommand = String.Format("setaudio MediaFile bass to {0}", bas);
    string Pcommand = String.Format("setaudio alias " + this.alias + " bass to {0}", bas);
    string Pcommand = String.Format("setaudio alias MediaFile bass to {0}", bas);
    
    und das gleiche auch mit mediastream
    string Pcommand = String.Format("setaudio " + this.alias + " bass to {0}", bas);
    string Pcommand = String.Format("setaudio mediastream bass to {0}", bas);
    string Pcommand = String.Format("setaudio alias " + this.alias + " bass to {0}", bas);
    string Pcommand = String.Format("setaudio alias mediastream bass to {0}", bas);


    Bin mit meinem Spanisch bald am Ende.

    Auf  CodeProject habe ich etwas gefunden aber dort funktiniert es auch nicht.
    Auch bei diesem Sample wird ein ErrorCode ausgegeben.

    Danke und Lg
    S.R


    Freitag, 30. März 2012 21:31
  • Hallo String.Rise,

    Versuch erstmals ob die Datei in Media Player fehlerfrei abspielt.

    Der Fehler lautet in Englisch: Media Error: The Specified device is not open or not recognized by MCI (MCI Error Code: 263)...wie sieht es aus mit diesem “Opened” aus meinem Code?

    Wie sieht es aus mit dem Sound-Driver? Alles in Ordnung, am letzten Stand?

    Vielleicht auch noch interessant: FMOD

    Ein anderer Weg führt durch DirectShow Interfaces.

    Grüße,

    Robert


    Robert Breitenhofer, MICROSOFT  Twitter Facebook
    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Montag, 2. April 2012 08:26
    Moderator
  • Hallo Robert,
    danke vorerst für deine Antwort und deine Tipps.
    Die Datei(en) wereden sowohl im MediaPlayer als auch auf meinem Player ohne Probleme abgespielt.
    Ich bekomme zwar die genannten Fehlermeldungen aber der Sound wird weiter ausgegeben.
    Wenn ich den Exception-Handler überspringe in dem ich es auskommentiere wird der Song ebenfalls weiter abgespielt.
    Die Treiber sollten soweit in ordnung und am aktuellsten Stand sein.
    Das Komische ist ja das ich left- und right Volume und MUTE oder open (CD-ROM) usw. mit dem fast gleichen Code mache.

    [quote]
    Vielleicht auch noch interessant: FMOD
    [/quote]
    Weiß ich nicht ob das freeware ist. Muss ich mal genau nachlesen. Und eigentlich wollte ich das ohne PlugIn oder APIs welche
    man installieren muß, realisieren. Ich weiss das MCI auch eine API ist aber dabei solltes auch wenns geht bleiben.

    [quote]
    Ein anderer Weg führt durch DirectShow Interfaces.
    [/quote]
    Habe darüber vor einpaar Jahren etwas kurz gelesen, geringe kenntnisse.
    Falls es dies bzgl. gute Seiten gibt währe ich für jeden Link sehr dankbar.

    Werde mir spätesten den Link und DirectShow am Wochenende mal drannehmen.
    Danke erneut und
    Lg String.Rise

    Montag, 2. April 2012 21:13