わかりましたので、バグではないかもしれませんが、動作しません。両方とも PyQt4 を使用するクラスが必要だとします。1 つは Audio.py と呼ばれ、Phonon を使用してサウンド ファイルを再生します。もう 1 つは GUI.py と呼ばれ、QtGui を使用して画面を表示します。GUI はいつでも Audio.py を呼び出して使用できる必要があります (オーディオのインポート)。呼び出しをインポートしてAudioクラスに送信しますが、Audioが開始されていないため(ダブルクリックして実行)、コードは実行されません(app = QApplication(sys.argv); sys.exit(app.exec_()))。そのため、Audio クラスは実行時に実行されますが、インポートすると、独自の QApplication ループが開始されていないため、サウンドが再生されません。
ヘルプはありますか?
編集:これらは2つの別々のpythonファイル(.py)であるクラスエンジンを追加しました
ライブラリ、プレイヤー、sysをインポート
PyQt4.QtGuiインポートQApplicationから
クラス エンジン (オブジェクト):
def __init__(self,path,song=None):
self.counter=0
self.path=path
self.lib=Library.Library(self.path)
if song is None:
self.player=Player.Player(self.lib.getSong(self.counter))
else:
self.player=Player.Player(path+song)
def updatePlayer(self,songStatus):
self.player.findStatus(songStatus)
def getCurrentSong(self):
return self.lib.getSong(self.counter)
if __ name __ ==' __ main __ ':
app=QApplication(sys.argv)
e=Engine('D:/Music/','Yeah!.mp3')
e.updatePlayer('Play')
sys.exit(app.exec_())
システムをインポート
PyQt4.QtGuiインポートQApplicationから
PyQt4.QtCore インポート QObject から
from PyQt4.phonon import Phonon
クラスプレーヤー(QObject):
def __init__(self,song):
super(QObject,self).__init__()
self.song=song
self.media=None
#self.metaInfo=Phonon.MediaObject(self)
#self.metaInfo.currentSourceChanged.connect(self.disMetaData)
self.initMedia()
self.findStatus()
def initMedia(self):
if not self.media:
self.media=Phonon.MediaObject()
audioOutput=Phonon.AudioOutput(Phonon.MusicCategory,self)
Phonon.createPath(self.media,audioOutput)
self.media.setCurrentSource(Phonon.MediaSource(self.song))
def findStatus(self,status=None):
if status is not None:
if status=='Play':
self.playSong()
return
if status=='Stop':
self.stopSong()
return
if status=='Pause':
self.pauseSong()
return
if status=='Next':
nextSong()
return
if status=='Previous':
self.previousSong()
return
def playSong(self):
self.media.play()
def stopSong(self):
self.media.stop()
def pauseSong(self):
self.media.pause()
def nextSong(self):
'''nextSong code'''
def previousSong(self):
'''previousSong code'''
if __ name __ ==' __ main __ ':
app=QApplication(sys.argv)
p=Player('D:/Music/Yeah!.mp3')
p.findStatus('Play')
sys.exit(app.exec_())