Erstellen von neuer Windows Media Player Anwendung

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Pasi.

    Erstellen von neuer Windows Media Player Anwendung

    Hallo zusammen,

    ich bin gerade dabei eine Erweiterung/Mod für das Spiel Arma 3 zu schreiben. Dabei benutze ich C# und die WMPLib Library.
    Das Ziel ist es ein Internetradio im Spiel zu hören bzw. dies zu Simulieren.

    Das ganze funktioniert soweit auch nur leider gibt es kleine Probleme mit dem Kontrollieren der Lautstärke.
    Momentan wird sobald ich die Lautstärke einstelle die komplette Wiedergabe von dem Arma 3 Sound leiser.
    Meine Frage ist nun, wie kann ich eine Art eigene Anwendung (sie Screenshot) nur für den WMP der den Stream abspielt aufrufen und Steuern ?

    Hier mal was momentan passiert:


    Und hier habt ihr mal meinen Code. Die DLL Datei wird über das Spiel aufgerufen und gibt nur einen String an die Anwendung. Ansonst ist sie unabhängig.

    C#-Quellcode

    1. public class DllEntry // This can be named anything you like
    2. {
    3. [DllExport("RVExtension", CallingConvention = System.Runtime.InteropServices.CallingConvention.Winapi)]
    4. public static void RVExtension(StringBuilder output, int outputSize, [MarshalAs(UnmanagedType.LPStr)] string function)
    5. {
    6. if (function.Contains("Volume"))
    7. {
    8. string removechars = function.Replace("Volume", "");
    9. int Volume = Int32.Parse(removechars);
    10. SoundControl.MusicVolume(Volume);
    11. }
    12. else
    13. {
    14. switch (function)
    15. {
    16. case "Play":
    17. SoundControl.PlayMusic();
    18. break;
    19. case "Stop":
    20. SoundControl.StopPlayMusic();
    21. break;
    22. default:
    23. break;
    24. }
    25. }
    26. }
    27. }


    C#-Quellcode

    1. class SoundControl
    2. {
    3. public static WindowsMediaPlayer Player;
    4. public static bool isPlaying;
    5. public static void PlayMusic()
    6. {
    7. if (isPlaying == true)
    8. {
    9. StopPlayMusic();
    10. }
    11. Player = new WindowsMediaPlayer();
    12. Player.URL = "http://www.iloveradio.de/iloveradio.m3u";
    13. Player.controls.play();
    14. MusicVolume(1);
    15. isPlaying = true;
    16. }
    17. public static void StopPlayMusic()
    18. {
    19. Player.controls.stop();
    20. isPlaying = false;
    21. }
    22. public static void MusicVolume(int Volume)
    23. {
    24. Player.settings.volume = Volume;
    25. }
    26. }





    Es wäre super super geil wenn ihr mir helfen könntet ich bin so langsam am Verzweifeln :/

    Liebe Grüße an alle
    Pasi

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Pasi schrieb:

    wie kann ich eine Art eigene Anwendung (sie Screenshot) nur für den WMP der den Stream abspielt aufrufen

    Ich denke nicht, dass das möglich ist. Laut diesem Eintrag fasst der Mixer alle Lautstärken unter einer ProcessID zusammen [The system only keeps track of the PID for each application]. Du müsstest eine anderen Audio Schnittstelle nehmen z.B CSCore bei der du den Sound pro Datei einstellen kannst, oder wirklich einen neuen Prozess starten und mit dem Kommunizieren. Oder vielleicht hat sonst noch jemand eine Lösung.
    Hi danke das du mir geantwortet hast ^^

    Wie würde ich diesen neuen Prozess den starten und wie könnte ich mit ihm Kommunizieren ?

    Bei CSCore müsste ich mich erstmal einfuxen und mit NRadio komme ich nicht klar :/
    Das Problem ist halt das ich Livestreams abspielen möchte und ich nicht weiß wie das mit NRadio oder CSCore geht. Tutorials gibts bei NRadio leider auch nur ohne Beispiele was für mich als Anfänger irgend wie etwas schwierig ist.