QSoundEffect Class
QSoundEffect 클래스는 저지연 음향 효과를 재생할 수 있는 방법을 제공합니다. 더 보기...
| 헤더: | #include <QSoundEffect> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
| qmake: | QT += multimedia |
| QML에서: | SoundEffect |
| 상속: | QObject |
공개 유형
속성
|
공개 함수
| QSoundEffect(QObject *parent = nullptr) | |
| QSoundEffect(const QAudioDevice &audioDevice, QObject *parent = nullptr) | |
| virtual | ~QSoundEffect() override |
| QAudioDevice | audioDevice() |
| bool | isLoaded() const |
| bool | isMuted() const |
| bool | isPlaying() const |
| int | loopCount() const |
| int | loopsRemaining() const |
| void | setAudioDevice(const QAudioDevice &device) |
| void | setLoopCount(int loopCount) |
| void | setMuted(bool muted) |
| void | setSource(const QUrl &url) |
| void | setVolume(float volume) |
| QUrl | source() const |
| QSoundEffect::Status | status() const |
| float | volume() const |
공개 슬롯
신호
| void | audioDeviceChanged() |
| void | loadedChanged() |
| void | loopCountChanged() |
| void | loopsRemainingChanged() |
| void | mutedChanged() |
| void | playingChanged() |
| void | sourceChanged() |
| void | statusChanged() |
| void | volumeChanged() |
정적 공용 멤버
| QStringList | supportedMimeTypes() |
상세 설명
이 클래스를 사용하면 비압축 오디오 파일(일반적으로 WAV 파일)을 전반적으로 더 낮은 지연 시간으로 재생할 수 있으며, 사용자 동작에 대한 "피드백" 유형의 사운드(예: 가상 키보드 소리, 팝업 대화 상자에 대한 긍정적 또는 부정적 피드백, 게임 사운드)에 적합합니다. 지연 시간이 중요하지 않다면, 더 다양한 미디어 형식을 지원하고 리소스 소모가 적은 QMediaPlayer 클래스를 사용하는 것을 고려해 보십시오.
이 예제는 반복 재생되며 다소 조용한 사운드 효과를 재생하는 방법을 보여줍니다:
QSoundEffect effect;
effect.setSource(QUrl::fromLocalFile("engine.wav"));
effect.setLoopCount(QSoundEffect::Infinite);
effect.setVolume(0.25f);
effect.play();일반적으로 사운드 효과는 재사용되어야 하며, 이를 통해 모든 파싱 및 준비 작업을 미리 완료해 두고 필요할 때만 트리거할 수 있습니다. 이는 낮은 지연 시간의 오디오 재생에 도움이 됩니다.
MyGame()
: m_explosion(this)
{
m_explosion.setSource(QUrl::fromLocalFile("explosion.wav"));
m_explosion.setVolume(0.25f);
// Set up click handling etc.
connect(clickSource, &QPushButton::clicked, &m_explosion, &QSoundEffect::play);
}
private:
QSoundEffect m_explosion;QSoundEffect는 낮은 지연 시간 재생을 위해 약간 더 많은 리소스를 필요로 하므로, 플랫폼에 따라 동시에 재생되는 사운드 효과의 수가 제한될 수 있습니다.
멤버 유형 문서
enum QSoundEffect::Loop
| 상수 | 값 | 설명 |
|---|---|---|
QSoundEffect::Infinite | -2 | setLoopCount() 함수의 매개변수로 사용되어 무한 루프를 생성합니다. |
enum QSoundEffect::Status
| 상수 | 값 | 설명 |
|---|---|---|
QSoundEffect::Null | 0 | 소스가 설정되지 않았거나 소스가 null입니다. |
QSoundEffect::Loading | 1 | SoundEffect 가 소스를 불러오려고 시도 중입니다. |
QSoundEffect::Ready | 2 | 소스가 로드되어 재생 준비가 완료되었습니다. |
QSoundEffect::Error | 3 | 소스 로딩 실패와 같은 작업 중 오류가 발생했습니다. |
속성 설명
audioDevice : QAudioDevice
QAudioDevice 인스턴스를 반환합니다.
액세스 함수:
| QAudioDevice | audioDevice() |
| void | setAudioDevice(const QAudioDevice &device) |
Notifier 신호:
| void | audioDeviceChanged() |
loops : int
이 속성은 사운드가 재생되는 횟수를 지정합니다. 값이 0 또는 1이면 사운드가 한 번만 재생되며, 무한 반복을 활성화하려면 SoundEffect.Infinite로 설정하십시오.
이 값은 음향 효과가 재생되는 도중에도 변경할 수 있으며, 이 경우 남은 재생 횟수가 새로운 값으로 업데이트됩니다.
액세스 함수:
| int | loopCount() const |
| void | setLoopCount(int loopCount) |
알림 신호:
| void | loopCountChanged() |
[read-only] loopsRemaining : int
이 속성은 음향 효과가 자동으로 멈추기까지 남은 루프 횟수를 나타내며, ‘ loops ’에서 해당 설정이 지정된 경우 ‘ QSoundEffect::Infinite ’ 값을 반환합니다.
액세스 함수:
| int | loopsRemaining() const |
알림 신호:
| void | loopsRemainingChanged() |
muted : bool
이 속성은 음소거를 제어하는 방법을 제공합니다. 값을 ‘ true ’로 설정하면 이 이펙트의 소리가 꺼집니다.
액세스 함수:
알림 신호:
| void | mutedChanged() |
[read-only] playing : bool
이 속성은 음향 효과가 재생 중인지 여부를 나타냅니다.
액세스 함수:
| bool | isPlaying() const |
알림 신호:
| void | playingChanged() |
source : QUrl
이 속성은 재생할 사운드의 URL을 저장합니다. SoundEffect 가 소스를 불러오려면 해당 URL이 존재해야 하며, 애플리케이션이 지정된 디렉터리에 대한 읽기 권한을 가지고 있어야 합니다.
액세스 함수:
알림 신호:
| void | sourceChanged() |
[read-only] status : Status
이 속성은 ‘ QSoundEffect::Status ’ 열거형에 따른 사운드 효과의 현재 상태를 나타냅니다.
액세스 함수:
| QSoundEffect::Status | status() const |
알림 신호:
| void | statusChanged() |
volume : float
이 속성은 효과음 재생 음량을 0.0(무음)에서 1.0(최대 음량)까지 조절합니다.
액세스 함수:
알림 신호:
| void | volumeChanged() |
멤버 함수 설명서
[explicit] QSoundEffect::QSoundEffect(QObject *parent = nullptr)
지정된 ` parent`을 사용하여 `QSoundEffect`를 생성합니다.
[explicit] QSoundEffect::QSoundEffect(const QAudioDevice &audioDevice, QObject *parent = nullptr)
지정된 ` audioDevice ` 및 ` parent`을 사용하여 `QSoundEffect`를 생성합니다.
[override virtual noexcept] QSoundEffect::~QSoundEffect()
이 음향 효과를 제거합니다.
bool QSoundEffect::isLoaded() const
사운드 효과의 로딩이 완료되었는지 여부를 반환합니다. source()
bool QSoundEffect::isMuted() const
이 음향 효과가 음소거되어 있는지 여부를 반환합니다.
참고: muted 속성에 대한게터 함수입니다.
bool QSoundEffect::isPlaying() const
현재 음향 효과가 재생 중이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
참고: 속성 ` playing`에 대한게터 함수입니다.
[signal] void QSoundEffect::loadedChanged()
로딩 상태가 변경되면 ‘ loadedChanged ’ 신호가 전송됩니다.
int QSoundEffect::loopCount() const
이 음향 효과가 재생이 중단되기 전까지 재생될 총 횟수를 반환합니다.
현재 남은 반복 횟수를 확인하려면 loopsRemaining() 메서드를 참조하십시오.
참고: loops 속성에 대한게터 함수입니다.
setLoopCount()도 참조하십시오 .
[signal] void QSoundEffect::loopCountChanged()
loopCountChanged 신호는 초기 루프 횟수가 변경되었을 때 발생합니다.
참고: 속성 ` loops`에 대한알림 신호입니다.
[signal] void QSoundEffect::loopsRemainingChanged()
loopsRemainingChanged 신호는 남은 루프 횟수가 변경되었을 때 발생합니다.
참고: 속성 ` loopsRemaining`에 대한알림 신호입니다.
[signal] void QSoundEffect::mutedChanged()
mutedChanged 신호는 음소거 상태가 변경되었을 때 발생합니다.
참고: 속성 muted 에 대한알림 신호입니다.
[slot] void QSoundEffect::play()
음향 효과의 재생을 시작하고, loops 속성에 지정된 횟수만큼 효과를 반복합니다.
[signal] void QSoundEffect::playingChanged()
playingChanged 신호는 playing 속성이 변경되었을 때 발생합니다.
참고: 속성 ` playing`에 대한Notifier 신호입니다.
void QSoundEffect::setLoopCount(int loopCount)
이 음향 효과의 총 재생 횟수를 ` loopCount`로 설정합니다.
루프 횟수를 0 또는 1로 설정하면 사운드 효과가 한 번만 재생되며, QSoundEffect::Infinite 을 전달하면 무한히 반복됩니다. 사운드 효과가 재생 중일 때 루프 횟수를 변경할 수 있으며, 이 경우 남은 루프 횟수가 새로운 loopCount 로 업데이트됩니다.
참고: loops 속성에 대한세터 함수입니다.
loopCount() 및 loopsRemaining()도 참조하십시오 .
void QSoundEffect::setMuted(bool muted)
이 음향 효과의 재생을 음소거할지 여부를 설정합니다.
muted 가 true인 경우 재생이 음소거(소리가 나지 않게)되며, 그렇지 않은 경우 현재 지정된 volume()에 따라 재생됩니다.
참고: muted 속성에 대한세터 함수입니다.
isMuted()도 참조하십시오 .
void QSoundEffect::setSource(const QUrl &url)
재생할 현재 URL을 url 로 설정합니다.
참고: source 속성에 대한세터 함수입니다.
source()도 참조하십시오 .
void QSoundEffect::setVolume(float volume)
음향 효과 볼륨을 volume 로 설정합니다.
볼륨은 0.0 (무음)에서 1.0 (최대 볼륨)까지 선형적으로 조정됩니다. 이 범위 밖의 값은 제한됩니다.
기본 볼륨은 1.0 입니다.
UI 음량 컨트롤은 일반적으로 비선형적으로 스케일링되어야 합니다. 예를 들어, 로그 스케일을 사용하면 지각되는 음량이 선형적으로 변화하는데, 이는 사용자가 음량 컨트롤에서 일반적으로 기대하는 바입니다. 자세한 내용은 QtAudio::convertVolume()을 참조하십시오.
참고: 속성 volume 에 대한세터 함수입니다.
volume()도 참조하십시오 .
QUrl QSoundEffect::source() const
재생 중인 소스의 URL을 반환합니다.
참고: source 속성에 대한게터 함수입니다.
setSource()도 참조하십시오 .
[signal] void QSoundEffect::sourceChanged()
sourceChanged 신호는 소스가 변경되었을 때 발생합니다.
참고: 속성 source 에 대한알림 신호입니다.
QSoundEffect::Status QSoundEffect::status() const
이 사운드 효과의 현재 상태를 반환합니다.
참고: status 속성에 대한게터 함수입니다.
[signal] void QSoundEffect::statusChanged()
statusChanged 신호는 status 속성이 변경되었을 때 발생합니다.
참고: 속성 ` status`에 대한Notifier 신호입니다.
[slot] void QSoundEffect::stop()
현재 재생 중인 콘텐츠를 중지합니다.
[static] QStringList QSoundEffect::supportedMimeTypes()
이 플랫폼에서 지원되는 MIME 유형 목록을 반환합니다.
float QSoundEffect::volume() const
이 음향 효과의 현재 음량을 0.0(무음)에서 1.0(최대 음량) 사이의 값으로 반환합니다.
참고: volume 속성의게터 함수입니다.
참조: ` setVolume()` 함수.
[signal] void QSoundEffect::volumeChanged()
volumeChanged 신호는 볼륨이 변경되었을 때 발생합니다.
참고: 속성 ` volume`에 대한알림 신호입니다.
© 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.