1

そのため、辞書で単語を検索し、エントリと提案を返し、音声をダウンロードして、音声のある「関連単語」(場合によっては複数) を返す GUI を作成しようとしています。次に、ユーザーは 3 つのボタンのいずれかをクリックして、方言に基づいてオーディオを再生します。再生する単語を取得できますが、最後に再生した単語を閉じることができないため、別の単語をダウンロードできます。

関連するコードは次のとおりです。

@staticmethod
    def munster():
            """ This method plays the Munster recording, if it exists"""
            url = QtCore.QUrl.fromLocalFile("./CanM.mp3")
            content = QtMultimedia.QMediaContent(url)
            player = QtMultimedia.QMediaPlayer()
            player.setMedia(content)
            player.play()
            player.stateChanged(app.quit)

最後の行に到達すると、次のエラーが表示されます。

TypeError: ネイティブ Qt シグナルは呼び出し可能ではありません

プレーヤーを閉じて、同じ名前の別のオーディオ ファイルをダウンロードできるようにする方法はありますか?

記録のために、私は PyQt5 の最新リリースと Windows 81 の Python 3.4 で Qt5.4 を使用しています。ただし、Archlinux システムでもこのプロジェクト (同じ Qt と PyQt を使用) に取り組んでいます。簡単に持ち運びできるようにしたいです。

編集: Player クラスに含まれているすべてのものを見始めると、非常に簡単です。切断方法を使用する必要がありました。

Edit2: 完全な作業コードを表示するように編集

 @staticmethod
    def play_audio(dialect):
        file_names = {'Munster': './CanM.mp3', 'Connacht': './CanC.mp3', 'Ulster': './CanU.mp3'}
        url = QtCore.QUrl.fromLocalFile(os.path.abspath(file_names[dialect]))
        content = QtMultimedia.QMediaContent(url)
        player = QtMultimedia.QMediaPlayer()
        player.setMedia(content)
        player.play()
        player.stateChanged.connect(lambda: player.disconnect())
4

0 に答える 0