43128


`QSound`を使って、WAVEファイルを再生したいと思っています。サンプルとして`hello.wav`という`WAVE`ファイルを作成し、それを使ってテストをしてみようと思ったのですが、ポーン！というシステム音が出るだけで、全くヘローといってくれません。  
その`WAVE`ファイルをダブルクリックすると、ちゃんとそれなりのソフトでは、ITunesやMicrosoft Media
Player等、ほか色々では、ちゃんとヘローとあいさつしてくれます。どこかコードに悪いところがあるのでしょうか？  

> Microsoft Windows  
>  The underlying multimedia system is used; only WAVE format sound files are
> supported.

Wavファイルしか使えないようです。以下がサンプルコードです。

[code]

    from PySide import QtGui
    from PySide import QtCore
    import sys
    import os
    
    class HelloSpeaker(QtGui.QPushButton):
        def __init__(self,parent=None):
            super(HelloSpeaker,self).__init__(parent=None)
            self.setText("再生")
            self.connect(self,QtCore.SIGNAL("clicked()"),self.play_sound)
        def play_sound(self):
            sound = QtGui.QSound(os.getcwd()+"hello.wav")
            sound.play(os.getcwd()+"hello.wav")
    
    def main():
        try:
            QtGui.QApplication([])
        except Exception as e:
            print(28,e)
    
        hello = HelloSpeaker()
        hello.show()
    
        sys.exit(QtGui.QApplication.exec_())
    if __name__ == "__main__":
        main()
    
[/code]

環境

[code]

    python3.6.3 pyside1.2.4
    
[/code]


CC BY-SA 3.0
2018-04-09T11:17:15.987
43096
2018-08-26T05:54:06.213
2018-04-09T12:04:35.863
24284
24284
question
python qt pyqt pyside
QSoundで出力した音がシステム音になる。


`os.getcwd()`と`"hello.wav"`の間にパス区切り文字がないので、期待するパスに  
なっていないのが原因ではないでしょうか?

[code]

    修正例
    sound.play(os.getcwd() + "/" + "hello.wav")
    
[/code]


CC BY-SA 3.0
2018-04-09T12:31:18.357
43099
2018-04-09T12:31:18.357
20098
43096
answer


`gTTS`で作成した`.wav`ファイルなのですが、どうやら`gTTS`では`.mp3`ファイルしか作ることが出来ないという事が判りました。これで作った`.wav`ファイルは、一応デバイスによっては再生することは可能なのですが、これが割とかかわっていると思ったのですが・・・  
[gTTSはmp3ファイルだけ？](https://stackoverflow.com/questions/49745456/what-kind-of-
files-can-gtts-save)

`os.startfile(os.getcwd()+"hello.mp3")`

~~結局`QSound`は今の段階では動かないのかなというところが正解なのかもしれないですね。治る事を望みます。~~

`gtts`で壊れた`wav`ファイルを作成し、音が鳴らないと悩んでいたのがオチでした。`gtts`で`wav`を指定すると、wavファイルは形だけ出来上がりますし、ほかのアプリケーション(I
Tunesや、WMVプレーヤ他いろいろ)だと再生可能なので、完全には壊れたと言い難いのですが、このことが却って誤解を生みました。これはおそらく`QSound`だけは、再生不可能でした。  
今改めて`wav`ファイルを乗せると、問題なくサウンドを行うことができました。  
どうもお騒がせしました。


CC BY-SA 4.0
2018-04-10T10:40:34.703
43128
2018-08-26T05:54:06.213
2018-08-26T05:54:06.213
24284
24284
43096
answer