質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Pygame

Pygameは、ビデオゲームの製作用に設計されたクロスプラットフォームのPythonモジュールセットです。Pythonでコンピューターグラフィックスと音声を扱うためのライブラリが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

3009閲覧

pythonのpygameで音が鳴らない

退会済みユーザー

退会済みユーザー

総合スコア0

Pygame

Pygameは、ビデオゲームの製作用に設計されたクロスプラットフォームのPythonモジュールセットです。Pythonでコンピューターグラフィックスと音声を扱うためのライブラリが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/02/09 07:33

pygameを使って音楽を再生したいのですが、なぜか音がなりません。
エラーなどは発生していませんし、コンピュータ自体の音量も0ではありません。
スピーカーが起動するような音はしているのですが、肝心の音楽
がなりません。(ピアノの単音です。)
よろしくお願い致します。

ファイルの構造(実行するファイルと音楽のファイルは同じディレクトリファイルにあります。

  • Desktop/python/OnkanApp/

---OnkanApp.py
----Music_DO.mp3
----Music_RE.mp3
----Music_MI.mp3

python

1#!/usr/bin/env/python3 2# -*- coding: utf-8 -*- 3 4import time 5import random 6import sys 7 8import pygame.mixer 9 10 11 12class OnkanApp: #メインとなるクラス 13 """絶対音感を判定するアプリです""" 14 def __init__(self,name,point): 15 self.name=name 16 self.point=point 17 self.music_file={0:'OnkanApp_DO',1:'OnkanApp_RE',2:'OnkanApp_MI',3:'OnkanApp_FA',4:'OnkanApp_SO',5:'OnkanApp_RA',6:'OnkanApp_SI'} 18 self.Ok=0 19 def select_game(self): 20 self.game_mode=int(input("""ゲームモード選択 21 チュートリアル : 0 22 単音でフラットとかシャープとかないやつ : 1 23 単音だけどフラットとかシャープとかあるやつ: 2 24 和音でフラットとかシャープとかないやつ: 3 25 和音でしかもフラットとかシャープとかあるやつ:4""")) 26 if self.game_mode<0 or self.game_mode>4: 27 print('定義外の数字です') 28 return False 29 30 return self.game_mode 31 def game1(self): 32 33 time.sleep(3) 34 self.Q=1 35 while self.Q<6: 36 print('問題'+str(self.Q)) 37 print('これから流れる音の音階を、次の ド〜シの中から選びなさい') 38 pygame.mixer.init() 39 self.k = random.randint(0, 6) 40 pygame.mixer.music.load(self.music_file[self.k]+'.mp3') 41 pygame.mixer.music.play(10) 42 pygame.mixer.music.stop() 43 self.anser=int(input(""" \t\t\t\t\t\t\t\t\t ド : 1 44 レ : 2 45 ミ : 3 46 ファ: 1 47 ソ : 1 48 ラ : 1 49 シ : 1 50 """)) 51 if self.k==self.anser: 52 print('正解!') 53 self.Ok=self.Ok+1 54 else: 55 print('不正解') 56 self.Q=self.Q+1 57 return self.Ok 58 def game2(self): 59 pass 60 def game3(self): 61 pass 62 def game4(self): 63 pass 64 65 66name_num = int(input('こんにちは!君は誰ですか?...Aくんなら1,Bくんなら2,Cくん なら3を入力してください。')) # 誰がやってるのか判定 67if name_num == 1: 68 name = 'A' 69elif name_num == 2: 70 name = 'B' 71elif name_num == 3: 72 name = 'C' 73elif name_num < 1 or name_num > 3: 74 print('定義外') #定義外を判定 75 sys.exit() 76Mu=OnkanApp(name_num,0) #インスタンスの作成 77g=Mu.select_game() 78if g==False: #関数 select_game がFalseを返したか判定 79 print('定義外です。') 80 Mu.select_game() 81else: 82 print('難易度は', g, 'ね。です。') 83if g==1: 84 Mu.game1() 85 Ok=Mu.game1() 86 print('5問中'+str(Ok)+'正解でした。') 87 Mu.select_game() 88elif g==2: 89 Mu.game2() 90elif g==3: 91 Mu.game3() 92elif g==4: 93 Mu.game4() 94 95 96 97 98 99 100

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

music.playの機能を多分勘違いしておられるような印象です。この関数は「音が鳴り終わるまで戻ってこない」のではなく「音の再生開始をハードウェアに指示した後即座に戻ってくる」のです。
よって人間が再生音を充分聞き終わるまでプログラムの実行を一時的に止める配慮が必要です。
time.sleepを使うとそれが簡単にできますので、10回ループ再生するのに10秒必要なら
time.sleep(10)をplayの後に書いておけばよいでしょう。

投稿2019/02/09 07:58

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/02/09 08:25

ありがとうございます! time.sleep(....)を追加して解決いたしました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問