Reproducir sonido instantáneamente
-
Buenas, estoy tratando de hacer un metrónomo en QtFramework con un hilo para generar pulsos con precisión. Para emitir los sonidos del metrónomo estoy usando QMediaPlayer, tal vez sea este mi error. Cuando el tempo del metrónomo es muy rápido se nota que el reproductor no ejecuta los sonidos a tiempo. ¿Hay alguna alternativa al QMediaPlayer para emitir los sonidos de forma instantánea?
-
Hola, JoanJingles, si pudieras mandar una parte del código que utilizas, sería mejor, yo por ejemplo cuando hago una aplicación con sonidos para reproducir, que al darle clic a un botón se reproduzca un sonido, realizo lo siguiente, creo una clase aparte solo para la reproducción si voy a reproducir más de un solo sonido, en dicha clase declaro :
//MyClass.h
#include <QWidget>namespace Ui {
class Widget;
}//[0]
class QMediaPlayer;class MyClass : public QWidget
{
// codigo habitual de las clases
void Progress_Sonido();private:
QMediaPlayer *mMediaPlayer;};
//MyClass.cpp
void MyClass::Progress_Sonido()
{
QString direccion_media = QCoreApplication::applicationDirPath() + "/SONIDOS/tic_hard.mp3";//QDir::currentPath().left(50) + "PromesarioRgit/SONIDOS/tic_hard.mp3";//URL del sonido a reproduce, en este caso la tenía el sonido en una carpeta en la misma URL que el .exe de mi app
mMediaPlayer = new QMediaPlayer(this);//inicio dinamicamente el QMediaPlayer
mMediaPlayer->setMedia(QUrl::fromLocalFile(direccion_media));//pongo la URL
mMediaPlayer->setVolume(50);//volumen al reproducir
mMediaPlayer->play();//mando a reproducir el sonido
}
Y luego solo tengo que llamar mi clase con todos los sonidos y si tengo varios métodos que me reproduzcan distintos sonidos puedo llamarlos, espero que te ayude, claro que si haces esto dentro de un hilo ganaras más velocidad, pero no sé si de algún problema ya que si los hilos les pones pausa en la ejecución puede que se entrecorten los sonidos al reproducirse.