En esta página

SoundEffect QML Type

El tipo SoundEffect proporciona una forma de reproducir efectos de sonido en QML. Más...

Import Statement: import QtMultimedia
In C++: QSoundEffect

Propiedades

Señales

Métodos

Descripción detallada

Este tipo permite reproducir archivos de audio sin comprimir (normalmente archivos WAV) de una forma generalmente de baja latencia, y es adecuado para sonidos de tipo "feedback" en respuesta a acciones del usuario (por ejemplo, sonidos de teclado virtual, feedback positivo o negativo para diálogos emergentes, o sonidos de juegos). Si la baja latencia no es importante, considere la posibilidad de utilizar en su lugar el tipo MediaPlayer, ya que admite una mayor variedad de formatos multimedia y consume menos recursos.

Normalmente, el efecto de sonido debe reutilizarse, lo que permite que todo el análisis y la preparación se realicen con antelación y sólo se activen cuando sea necesario. Esto es fácil de conseguir con QML, ya que puedes declarar tu instancia SoundEffect y hacer referencia a ella en cualquier otro lugar.

El siguiente ejemplo reproduce un archivo WAV al hacer clic con el ratón.

Text {
    text: "Click Me!";
    font.pointSize: 24;
    width: 150; height: 50;

    SoundEffect {
        id: playSound
        source: "soundeffect.wav"
    }
    MouseArea {
        id: playArea
        anchors.fill: parent
        onPressed: { playSound.play() }
    }
}

Nota: QSoundEffect sólo admite archivos de sonido mono o estéreo. Se recomienda utilizar archivos de sonido con una frecuencia de muestreo de 48000hz, ya que ésta es la frecuencia de muestreo nativa típica en la mayoría de las plataformas (QAudioDevice::preferredFormat()).

Documentación de propiedades

loops : int

Esta propiedad contiene el número de veces que se reproduce el sonido. Un valor de 0 o 1 significa que el sonido sólo se reproducirá una vez; establezca SoundEffect.Infinite para habilitar bucles infinitos.

El valor puede cambiarse mientras se reproduce el efecto de sonido, en cuyo caso actualizará los bucles restantes al nuevo valor.

loopsRemaining : int [read-only]

Esta propiedad contiene el número de bucles restantes antes de que el efecto de sonido se detenga por sí mismo, o SoundEffect.Infinite si eso es lo que se ha establecido en loops.

muted : bool

Esta propiedad permite controlar el silenciamiento. Un valor de true silenciará este efecto. De lo contrario, la reproducción se producirá con el valor especificado actualmente volume.

playing : bool [read-only]

Esta propiedad indica si el efecto de sonido se está reproduciendo o no.

source : url

Esta propiedad contiene la url del sonido a reproducir. Para que SoundEffect intente cargar la fuente, la URL debe existir y la aplicación debe tener permiso de lectura en el directorio especificado. Si la fuente deseada es un archivo local, la URL puede especificarse utilizando una ruta absoluta o relativa (al archivo que declaró SoundEffect).

status : enumeration [read-only]

Esta propiedad indica el estado actual de SoundEffect tal y como se enumera en SoundEffect. A continuación se enumeran los posibles estados.

ValorDescripción
SoundEffectNuloNo se ha establecido ninguna fuente o la fuente es nula.
SoundEffectCargandoSoundEffect está intentando cargar la fuente.
SoundEffectListoLa fuente está cargada y lista para reproducirse.
SoundEffect.ErrorSe ha producido un error durante la operación, como un fallo al cargar la fuente.

volume : real

Esta propiedad contiene el volumen de la reproducción del efecto de sonido.

El volumen se escala linealmente desde 0.0 (silencio) hasta 1.0 (volumen máximo). Los valores fuera de este rango serán bloqueados.

El volumen por defecto es 1.0.

Normalmente, los controles de volumen de la interfaz de usuario deben escalarse de forma no lineal. Por ejemplo, utilizar una escala logarítmica producirá cambios lineales en el volumen percibido, que es lo que un usuario esperaría normalmente de un control de volumen. Para más información, consulte convertVolume().

Documentación sobre señales

loadedChanged()

La señal loadedChanged se emite cuando el estado de carga ha cambiado.

Nota: El manejador correspondiente es onLoadedChanged.

loopCountChanged()

La señal loopCountChanged se emite cuando el número inicial de bucles ha cambiado.

Nota: El manejador correspondiente es onLoopCountChanged.

loopsRemainingChanged()

La señal loopsRemainingChanged se emite cuando el número restante de bucles ha cambiado.

Nota: El manejador correspondiente es onLoopsRemainingChanged.

mutedChanged()

La señal mutedChanged se emite cuando el estado de silencio ha cambiado.

Nota: El manejador correspondiente es onMutedChanged.

playingChanged()

La señal playingChanged se emite cuando la propiedad de reproducción ha cambiado.

Nota: El controlador correspondiente es onPlayingChanged.

sourceChanged()

La señal sourceChanged se emite cuando se ha modificado la fuente.

Nota: El manejador correspondiente es onSourceChanged.

statusChanged()

La señal statusChanged se emite cuando la propiedad de estado ha cambiado.

Nota: El manejador correspondiente es onStatusChanged.

volumeChanged()

La señal volumeChanged se emite cuando el volumen ha cambiado.

Nota: El manejador correspondiente es onVolumeChanged.

Documentación del método

bool isLoaded()

Devuelve si el efecto de sonido ha terminado de cargar source.

void play()

Inicia la reproducción del efecto de sonido, reproduciéndolo en bucle el número de veces especificado en la propiedad loops.

Este es el método por defecto para SoundEffect.

SoundEffect {
    id: playSound
    source: "soundeffect.wav"
}
MouseArea {
    id: playArea
    anchors.fill: parent
    onPressed: { playSound.play() }
}

void stop()

Detener la reproducción actual.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.