2017-10-24 44 views
0

Kivyウェブサイトの指示に厳密に従っているときに、Kivyでサウンドを読み込むことができないのはなぜですか?どんな助けでも大歓迎です!Python-Kivy:SoundLoader.loadが機能しない

次の例では、https://kivy.org/docs/api-kivy.core.audio.htmlからである:私はコピーして、空白のPythonのファイルにこの例を貼り付けて、コードを実行してきました

from kivy.core.audio import SoundLoader 

sound = SoundLoader.load('mytest.wav') 
if sound: 
    print("Sound found at %s" % sound.source) 
    print("Sound is %.3f seconds" % sound.length) 
    sound.play() 

。私は 'mytest.wav'のための有効なwavファイルを使用するようにして、wavファイルをPythonファイルと同じディレクトリに配置しました。

私は、次のエラーメッセージが出ます:

/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 /Users/MyUsername/PycharmProjects/MyProject/sound_test.py 
[INFO ] [Logger  ] Record log in /Users/MyUsername/.kivy/logs/kivy_17-10-24_4.txt 
[INFO ] [Kivy  ] v1.10.1.dev0, git-Unknown, 20170911 
[INFO ] [Python  ] v3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 00:54:21) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] 
[INFO ] [AudioGstplayer] Using Gstreamer 1.12.2.0 
[INFO ] [Audio  ] Providers: audio_gstplayer, audio_sdl2 (audio_ffpyplayer, audio_avplayer ignored) 
Traceback (most recent call last): 
    File "/Users/MyUsername/PycharmProjects/MyProject/sound_test.py", line 3, in <module> 
    sound = SoundLoader.load("mytest.wav") 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/kivy/core/audio/__init__.py", line 86, in load 
    return classobj(source=filename) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/kivy/core/audio/audio_gstplayer.py", line 45, in __init__ 
    super(SoundGstplayer, self).__init__(**kwargs) 
    File "kivy/_event.pyx", line 262, in kivy._event.EventDispatcher.__init__ 
    File "kivy/properties.pyx", line 478, in kivy.properties.Property.__set__ 
    File "kivy/properties.pyx", line 516, in kivy.properties.Property.set 
    File "kivy/properties.pyx", line 571, in kivy.properties.Property.dispatch 
    File "kivy/_event.pyx", line 1214, in kivy._event.EventObservers.dispatch 
    File "kivy/_event.pyx", line 1120, in kivy._event.EventObservers._dispatch 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/kivy/core/audio/__init__.py", line 174, in on_source 
    self.load() 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/kivy/core/audio/audio_gstplayer.py", line 62, in load 
    self.player.load() 
    File "kivy/lib/gstplayer/_gstplayer.pyx", line 233, in kivy.lib.gstplayer._gstplayer.GstPlayer.load 
kivy.lib.gstplayer._gstplayer.GstPlayerException: Unable to create a playbin 

Process finished with exit code 1 

を私はまた、3行目以下のコードを退治しようとしたが、それはエラーメッセージには影響を与えません。

答えて

0

kivyがすべてのフォーマットを処理するGStreamerに付属しているため、Windowsの音楽ファイルの拡張子はすべて動作しますが、他のプラットフォームでは.oggのみが動作し、ファイルをoggフォーマットに変換してから再試行します。

それが動作しない場合、私はあなたのkivyのインストールに問題があると思い、それらの手順に従って再インストールkivyしてみてください。

自作を使用して1.Install要件:

$ brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer 

2インストールはピップを使用して0.23とkivyをcython:

$ pip install -I Cython==0.23 
$ USE_OSX_FRAMEWORKS=0 pip install kivy 

私は本当に私はそれ

をテストするために、MAC OSを持っていないので、この作品を願って
+0

ありがとうございました!私は実際にMac OS Xを使用しています。まだファイルをoggに変換する必要がありますか?私はMacでwavファイルをうまく再生できます。この問題は、ファイルを再生するのではなく、Kivyでファイルを読み込んでいるようです。また、私がPygame(Kivyに切り替える前に)を使用したとき、同じファイルがロードされ、問題なく再生されました。 – Auggie

+0

はいMac OS Xについてよく分かりませんが、私はあなたがそうすべきだと思います –

+0

wavファイルを変換する必要はありません。 Ubuntu Linuxでwavファイルを再生するのに問題はありません。 – ikolim

関連する問題