ホームページ  >  記事  >  バックエンド開発  >  pygameで中国語名のmp3ファイルをロードする際のエラー解決方法の詳細な説明

pygameで中国語名のmp3ファイルをロードする際のエラー解決方法の詳細な説明

高洛峰
高洛峰オリジナル
2017-03-31 10:04:343381ブラウズ

#pygame は mp3 ファイルを再生します:

ここではわかりやすい方法だけを紹介します

pygameで中国語名のmp3ファイルをロードする際のエラー解決方法の詳細な説明

公式ドキュメントを開いてみると、作者は新しい世界を発見したようでした、こいつは強すぎる、そして今。使用できるのは、mp3 を再生することだけです。残りは後で調べましょう。mp3 テスト コードを再生してみましょう:

import pygame
path = 'Pam Pam - Noel Toto.mp3'pygame.mixer.init()
pygame.mixer.music.load(path)
pygame.mixer.music.play()

このうち、path は再生する mp3 ファイルのパスとファイル名を表します。 . ここで著者が使用しているのは、ネイティブアイドルであり、このmp3を正常に再生できます

#バグが見つかりました:

そして、午後に音楽リストのテスト再生を終えたときに著者が遭遇した問題があります。ロードするmp3ファイルの名前に中国語が含まれています。 pygame.error.

pygameで中国語名のmp3ファイルをロードする際のエラー解決方法の詳細な説明

恥ずかしいです。 出力パスを通して、中国語の文字化けがないことがわかりました。中国語のコミュニティでは、Pythonは中国語を避けるべきだと言っている人もいましたが、試してみたところ、StackOverflowのような英語のコミュニティでは機能しなかったようです。結局のところ、外国人は「自分たちのこと」にはあまり興味がないので、長い間探し回ったにもかかわらず、これは欠陥であるはずです。 pygame のソースコードを変更して解決するのは私にはできません^_^.

#debug:

作者が面白い方法を思いついたので、恥ずかしがらずにもっと良い実装方法があるはずです。私のデバッグのアイデアについて話します:

まず、中国語名 mp3 に遭遇すると、プログラムに重大な問題があると考えられます。こうすることで、中国語名の MP3 が見つかったときにエラーが発生した場合、自動的にコンテンツを除くファイルに移動し、再生するファイルを指定したディレクトリにコピーし、それを中国語以外の名前に変更することを考えました。中国語以外の mp3 ファイルをロードすることで、pygame の中国語認識の欠陥を回避します。 コードは次のとおりです:

import pygameimport shutil
path = '一走过的日子-刘德华.mp3'pygame.mixer.init()try:
    pygame.mixer.music.load(path)
    pygame.mixer.music.play()except:    print('something is wrong~\nbut i see you.')
    shutil.copyfile(path,'play.mp3')
    pygame.mixer.music.load('play.mp3')
    pygame.mixer.music.play()
# 実行中の効果:

pygameで中国語名のmp3ファイルをロードする際のエラー解決方法の詳細な説明

この時点で、プログラムはすでに中国語の mp3 ファイルを正常に再生できます。実際、この問題は本質的に pygame の中国語認識問題を解決するものではありませんが、この問題を回避するという欠点もあります。プロジェクトに取り組んでいます

この時点で、解決策について 今日の午後、私は pygame の中国語認識問題について説明し終えました。もしより良い方法があれば、コメントしてお知らせください。

python3.3.3 pygame ディレクトリを調べて、mixer.pyd ファイルを調べたところ、.pyd という拡張子があり、内容を変更するには逆コンパイルが必要です。

以上がpygameで中国語名のmp3ファイルをロードする際のエラー解決方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。