SoundEffectVPlay

The SoundEffectVPlay element allows playing short-lasting and looping sound effects in wav file format. More...

Import Statement: import VPlay 2.0
Inherits:

Item

Properties

Methods

Detailed Description

Playing SoundEffectVPlay has a very low latency and is therefore well suited for short notification sounds.

The sound is preloaded as soon as the source property is set and can then be started with low latency by calling play(). You can also set the loops property to implementing looping sounds.

For playing encoded audio files for example in MP3 format or with no latency requirements use the BackgroundMusic component. For videos use the Video component.

V-Play Additions to SoundEffect

SoundEffectVPlay enhances the Qt 5 component SoundEffect in the QtMultimedia 5.0 module with the following additions:

  • Allow to pause and resume all SoundEffectVPlay objects by setting settings.soundEnabled to true or false.
  • Proper application handling: if the app is moved to the background all instances of SoundEffectVPlay and BackgroundMusic are paused on mobile platforms. All instances are then resumed when the app gets focus again and comes into foreground. This is especially useful on mobile devices, where the default SoundEffect component would continue playing if the app is moved to the background. On Desktop platforms, the SoundEffect and BackgroundMusic instances keep playing. You can modify this behavior with the autoPauseInBackground property.
  • Use the autoPlay property to start playing a SoundEffect when it is loaded, useful if you have a BackgroundMusic type sound that should be loaded when starting your app.

SoundEffect Details

This type allows you to play uncompressed audio files (typically WAV files) in a generally lower latency way, and is suitable for "feedback" type sounds in response to user actions (e.g. virtual keyboard sounds, positive or negative feedback for popup dialogs, or game sounds). If low latency is not important, consider using the MediaPlayer or BackgroundMusic types instead, since they support a wider variety of media formats and are less resource intensive.

Typically the sound effect should be reused, which allows all the parsing and preparation to be done ahead of time, and only triggered when necessary. This is easy to achieve with QML, since you can declare your SoundEffectVPlay instance and refer to it elsewhere.

Note: Since SoundEffect requires slightly more resources to achieve lower latency playback, the platform may limit the number of simultaneously playing sound effects.

Finding Sounds

For free sounds, we recommend the following websites:

These sites have a great search feature, as you can search by categories or tags. Most of the sounds are available for free if you add the license to your game. There also are low-price premium version of the sounds, which allows you to use them without any license note.

Supported SoundEffect Formats

The wav format is the single format that is supported on all platforms. Try to follow the same Performance Hints mentioned in the BackgroundMusic component for maximum performance.

Example Usage

Here is an example of playing a looping sound on mouse click:

 import VPlay 2.0
 import QtQuick 2.0
 import QtMultimedia 5.0 // required for SoundEffect.Infinite enum value for infinite looping

 GameWindow {

   MouseArea {
     anchors.fill: parent
     onClicked: clickSound.play()
   }

   SoundEffectVPlay {
     id: clickSound
     source: "clickSound.wav"
     loops: SoundEffect.Infinite
   }
 }

Property Documentation

autoPauseInBackground : bool

Set this property to automatically pause this SoundEffectVPlay when the app is moved to background.

On mobile that happens if the user presses the home button and leaves the app. On desktop that happens when the app loses its focus or gets minimized.

By default, this value is true on mobile platforms and false on desktop platforms.


autoPlay : bool

Set this property to play the sound effect automatically when this item is loaded, e.g. at application start.

By default, it is set to true. So when the settings.soundEnabled property is also set to true, the music is played after initialization of the Settings object.

See also GameWindowApplicationWindow::settings.


category : string

This property contains the category of this sound effect.

Some platforms can perform different audio routing for different categories, or may allow the user to set different volume levels for different categories.

This setting will be ignored on platforms that do not support audio categories.


loops : int

This property provides a way to control the number of times to repeat the sound on each play().

By default, loops is set to 1 and therefore plays the sound effect only once.

Set to SoundEffect.Infinite to enable infinite looping.

Note: To have access to the SoundEffect.Infinite enum, make sure to call import QtMultimedia 5.0 in the header of your QML file


loopsRemaining : int

This property contains the number of loops remaining before the sound effect stops by itself, or SoundEffect.Infinite if that's what has been set in loops.


muted : bool

This property provides a way to control muting. A value of true will mute this sound. Otherwise, playback will occur with the currently specified volume. The default value is false.


playing : bool

This property holds whether the sound is playing.

This property is read-only.


source : url

This property holds the url for the sound to play. For the SoundEffectVPlay to attempt to load the source, the URL must exist and the application must have read permission in the specified directory. If the desired source is a local file, the URL may be specified by using either an absolute or a relative (to the file that declared the SoundEffectVPlay) path.


status : int

This property indicates the current status of the SoundEffectVPlay as enumerated within SoundEffect. Possible statuses are listed below.

Value Description
SoundEffect.Null No source has been set or the source is null.
SoundEffect.Loading The SoundEffect is trying to load the source.
SoundEffect.Ready The source is loaded and ready for play.
SoundEffect.Error An error occurred during operation, such as failure of loading the source.

volume : real

This property holds the volume of the sound output, from 0.0 (silent) to 1.0 (maximum volume).

Note: The volume property affects ALL Sounds and the BackgroundMusic instances on Windows, but not on mobile platforms. So the last volume setting that is defined is used for all sounds in the application.

The default value is 1.


Method Documentation

isLoaded()

Returns whether the sound effect has finished loading the source.


play()

Starts playback of the sound effect if the soundEnabled property in GameWindowApplicationWindow::settings is true, looping the effect for the number of times as specified in the loops property.

Sets the playing property to true.

See also stop().


stop()

Stop current playback.

Sets the playing property to false.

See also play().


Videos

Voted #1 for:

  • Easiest to learn
  • Most time saving
  • Best support

Develop Cross-Platform Apps and Games 50% Faster!

  • Voted the best supported, most time-saving and easiest to learn cross-platform development tool
  • Based on the Qt framework, with native performance and appearance on all platforms including iOS and Android
  • Offers a variety of plugins to monetize, analyze and engage users
FREE!
create apps
create games
cross platform
native performance
3rd party services
game network
multiplayer
level editor
easiest to learn
biggest time saving
best support