Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. Über QMediaPlayer Audio abspielen läuft nicht wie gewünscht (Widgets)
Forum Updated to NodeBB v4.3 + New Features

Über QMediaPlayer Audio abspielen läuft nicht wie gewünscht (Widgets)

Scheduled Pinned Locked Moved Unsolved German
1 Posts 1 Posters 286 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    stefanpc81
    wrote on last edited by
    #1

    Hallo,

    ich möchte mit dem QMediaPlayer Audiodatei(en) abspielen. Das Abspielen des Audiomediums funktioniert jedoch nicht ganz wie gewünscht. Die auslösende Funktion "PlayEicasCaution()" ist in einem Widget ("eicas" als child von MainWindow) verbunden mit dem Signal/Slot-Prinzip an den Parent (MainWindow) wo der Ton letztendlich abgespielt werden soll. Da das MainWindow größer ist als der Bidlschirm (ScrollArea) und das Widget "eicas" im unteren Bereich liegt, hört man den Ton nach der auslösenden Funktion erst dann wenn man das Widget "eicas" im sichtbaren Bereich des Bildschirms liegt. Also verzögert wenn das eicas nciht zu sehen ist. Die Audiodatei soll aber sofort nach der Signal-Funktion immer sofort gehört werden, egal ob das Widget "eicas" zu sehen ist oder nicht. Ich hoffe, soweit ist alles klar?
    Hier noch der bisherige Code:
    Audio.cpp:

    Audio::Audio(QObject* parent, QString name) : QMediaPlayer(parent)
    {
    	this->setMedia(QUrl::fromLocalFile("sound/" + name + ".mp3"));
    	if (name == "gear_down" || name == "gear_up")
    	{
    		this->setVolume(100);
    	}
    	else
    	{
    		this->setVolume(50);
    	}
    }
    
    

    Im Konstruktor von MainWindow:

    audioCaution = new Audio(nullptr, "caution");
    //Vereinfacht:
    eicas = new EICAS(basis_canvas);
    eicas->setGeometry(QRect(1020, 1070, 400, 400));
    connect(eicas, &EICAS::PlayEicasCaution, [=]() { PlayAudioCaution(); });
    

    MainWindow.cpp:

    void MainWindow::PlayAudioCaution()
    {
        audioCaution->play();
    }
    

    EICAS.h

    signals:
    	void PlayEicasCaution();
    

    "basis_canvas" ist der Inhalt des Widgets "MainWindow" der scrollbar ist.

    Was muss ich tun, damit das so wie gewünscht läuft?
    Vielen Dank für konstruktive Vorschläge!

    1 Reply Last reply
    0

    • Login

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Get Qt Extensions
    • Unsolved