« Py???シリーズ その2 | トップページ | ありゃ、ひっついちゃった、、、 »

2008年7月 5日 (土)

Py???シリーズ その3

2008-07-05(土)晴れ、暑い日

 今日も、Pythonのスクリプトに関する雑談です。昨日、PyTaskServerの運用のための、(実質)3行のスクリプトPyDingDong.pyの苦心惨憺談を書きましたら、Hiisiさんが返信記事を書いて下さいました。

    Hiisi Proxy 開発後記 「Re: Py???シリーズ その2」

 で、その記事では、きちんとコーディングされ説明コメントまで記入したスクリプトを書いて下さいました。PyBootSound.py です、教材ですね、こういうのが勉強になるんですよね。
  有り難うございます。>Hiisiさん
 そのスクリプトは、上記の記事を見て下さい。

 PyBootSound も昨日のPyDingDong も音声ファイルの部分を、いつも聞いている音楽ファイルへのパスに書き換えれば、音楽を再生することができます。二つの違いは下記です。
  PyBootSound:音楽ファイルも必ず最後まで再生できます。
  PyDingDong :最後の行の()内の秒数で打ち切られます。

 さて、その記事のコメントのやりとりで、シャッフル演奏のコーディングの例を教えて下さいました。これは、Tipsの記事(ココ)で、705NKのMusicPlayerでやった内容を、MusicPlayerのないX02NKでも実現するものです。考え方としては頭にあったのですが、いかんせんコーディングは出てきません。 早速、PyDingDong に入れて、PyWakeUp としてみました。

 Hiisiさんの教えて下さったのは下記です。音楽ファイルへのパス名を list(配列)として書いておき、randomで発生させたインデックスで取りだして使うものです。

import random
musics = [
u'E:\\Sounds\\Simple\\music1.mp3',
u'E:\\Sounds\\Simple\\music2.mp3',
u'E:\\Sounds\\Simple\\music3.mp3'
]
MUSIC = musics[random.randint(0, (len() - 1))]

 
 下記がPyDingDongに入れた結果です。PyWakeUpとしてみました。

#-*- coding:utf-8 -*-
# PyWakeUp.py

import e32
import audio
import random

musics = [
u'E:\\Music\\Favorites\011_OMBRA_MAI_FU.mp3',
u'E:\\Music\\Favorites\\013_AVE_MARIA_SCHUBERT.mp3',
u'E:\\Music\\Favorites\\014_AVE_MARIA_GOUNOD.mp3',
u'E:\\Music\\Favorites\\015_SONGS_MY_MOTHER_TAUGHT_ME.mp3',
u'E:\\Music\\Favorites\\016_ON_WINGS_OF_SONG.mp3'
]

MUSIC = musics[random.randint(0, (len(musics) - 1))]

S = audio.Sound.open(MUSIC)
S.set_volume(5)
S.play()
e32.ao_sleep(30)

 何とか動きました。散歩のときに、6分おきに起動するようにして確認していましたが、問題ないようです。確認も結構時間がかかります(笑)。

 この例では、スクリプトの中に直接音楽ファイル名を書いていますが、PyBootSoundと共通に使えるようにと、音楽ファイルのリストを外出しにしてみました。

音楽ファイルを列記したファイルを WakeUp.ini とします。

E:\Music\Favorites\011_OMBRA_MAI_FU.mp3
E:\Music\Favorites\013_AVE_MARIA_SCHUBERT.mp3
E:\Music\Favorites\014_AVE_MARIA_GOUNOD.mp3
E:\Music\Favorites\015_SONGS_MY_MOTHER_TAUGHT_ME.mp3
E:\Music\Favorites\016_ON_WINGS_OF_SONG.mp3

 
 PyWakeUpの書き直したものは下記です。

#-*- coding:utf-8 -*-
# PyWakeUp.py

import e32
import audio
import random

f = open('e:\\python\\WakeUp.ini','r')
fData = f.read()
f.close

musics = fData.split("\n")

MUSIC = musics[random.randint(0, (len(musics) - 1))]

S = audio.Sound.open(MUSIC)
S.set_volume(4)
S.play()
e32.ao_sleep(40)

 これも、散歩しながら確認しましたが、何とか動くようです。ただ、ファイルオープンのエラー処理などは省いているので、このままで良いかとなると疑問がありますが、自分用としては当面これでいくことにします。その間にエラー処理などを勉強します。
 まあ、これを目覚ましに使うかと言うことになると、使用する音楽は選んでおかないといけません。余り静かで心地よくて、余計眠り込んでしまう音楽はまずいですよねえ(笑)。

 ファイルや記事は下記にまとめました。(2008-08-21)

「Python スクリプト 雑記」の
「1.PyTaskserverと使うシリーズ」

 

|

« Py???シリーズ その2 | トップページ | ありゃ、ひっついちゃった、、、 »

携帯電話アプリ」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/513620/41744443

この記事へのトラックバック一覧です: Py???シリーズ その3:

« Py???シリーズ その2 | トップページ | ありゃ、ひっついちゃった、、、 »