Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python QAudioOutput不播放声音_Python_Pyside2 - Fatal编程技术网

Python QAudioOutput不播放声音

Python QAudioOutput不播放声音,python,pyside2,Python,Pyside2,我有一个非常简单的示例,使用Python3中的QAudioOutput类,使用PySide2(Qt5.15),尝试播放声音。我没有听到计算机发出任何声音 #!/bin/python3 from PySide2.QtMultimedia import QAudioDeviceInfo, QAudioOutput, QAudioFormat from PySide2.QtCore import QFile, QIODevice sourceFile = QFile() sourceFile.se

我有一个非常简单的示例,使用Python3中的QAudioOutput类,使用PySide2(Qt5.15),尝试播放声音。我没有听到计算机发出任何声音

#!/bin/python3

from PySide2.QtMultimedia import QAudioDeviceInfo, QAudioOutput, QAudioFormat
from PySide2.QtCore import QFile, QIODevice

sourceFile = QFile()
sourceFile.setFileName("/home/ubuntu/sound.wav");
sourceFile.open(QIODevice.ReadOnly);

format = QAudioFormat()
format.setSampleRate(8000);
format.setChannelCount(1);
format.setSampleSize(8);
format.setCodec("audio/pcm");
format.setByteOrder(QAudioFormat.Endian.LittleEndian);
format.setSampleType(QAudioFormat.SampleType.UnSignedInt);

info = QAudioDeviceInfo.defaultOutputDevice();
if (info.isFormatSupported(format) != True):
    qWarning() << "Raw audio format not supported by backend, cannot play audio.";

audio = QAudioOutput(info, format);
audio.start(sourceFile);

Qt的许多元素都需要一个事件循环,QAudioOutput异步运行时就是这样:

导入系统 从PySide2.qtmedia导入QAudioDeviceInfo、QAudioOutput、QAudioFormat 从PySide2.QtCore导入QFile、QIODevice、QCoreApplication def main(): app=QCoreApplication() sourceFile=QFile(“/home/ubuntu/sound.wav”) 如果不是sourceFile.open(QIODevice.ReadOnly): 打印(sourceFile.errorString()) 系统出口(-1) fmt=QAudioFormat() 固定采样率(8000) fmt.setChannelCount(1) 模板设置样本大小(8) fmt.setCodec(“音频/pcm”) 格式设置顺序(QAudioFormat.Endian.LittleEndian) fmt.setSampleType(QAudioFormat.SampleType.UnSignedInt) info=QAudioDeviceInfo.defaultOutputDevice() 如果不支持信息格式(fmt): 打印(“后端不支持原始音频fmt,无法播放音频。”) 系统出口(-1) 音频=音频输出(信息,fmt) audio.start(源文件) ret=app.exec 系统退出(ret) 如果名称=“\uuuuu main\uuuuuuuu”: main()
Qt的许多元素都需要一个事件循环,QAudioOutput异步运行时就是这样:

导入系统 从PySide2.qtmedia导入QAudioDeviceInfo、QAudioOutput、QAudioFormat 从PySide2.QtCore导入QFile、QIODevice、QCoreApplication def main(): app=QCoreApplication() sourceFile=QFile(“/home/ubuntu/sound.wav”) 如果不是sourceFile.open(QIODevice.ReadOnly): 打印(sourceFile.errorString()) 系统出口(-1) fmt=QAudioFormat() 固定采样率(8000) fmt.setChannelCount(1) 模板设置样本大小(8) fmt.setCodec(“音频/pcm”) 格式设置顺序(QAudioFormat.Endian.LittleEndian) fmt.setSampleType(QAudioFormat.SampleType.UnSignedInt) info=QAudioDeviceInfo.defaultOutputDevice() 如果不支持信息格式(fmt): 打印(“后端不支持原始音频fmt,无法播放音频。”) 系统出口(-1) 音频=音频输出(信息,fmt) audio.start(源文件) ret=app.exec 系统退出(ret) 如果名称=“\uuuuu main\uuuuuuuu”: main()
谢谢,它成功了。你知道我将如何换成不同的输出设备吗?@Aaron看到这个例子了吗?谢谢,它成功了。你知道我将如何换成不同的输出设备吗?@Aaron看到这个例子了吗
ubuntu@ubuntu:~$ python3 test.py 
QObject::startTimer: Timers can only be used with threads started with QThread