開発」カテゴリーアーカイブ

github によるソースコード開示。

みむらです。

制作したソフトウェアは、私が作成した物に関してはすべてソースコードは公開可能なものとして、
以前から要求があった際にはいつでも開示していました。

ただ、github を始めとする、ソースコードを共有するためのツールが近年発展しているのを受け、
こちらでも github を活用したソースコード開示を行う事としました。

ただし、特に昔制作したソフトウェアに関して、2バイト文字をファイル名として利用しているケース、
また、内部に公開出来ない部分が含まれている場合(ライセンス、ソースコードが汚すぎる場合など)に関しては、
公には開示せず、今まで通りの方法を採ることとしました。

随時公開可能となった物に関しては、公開予定でいますが、
別途連絡を頂ければ、いつでも公開可能です。

github : https://github.com/mimura1133/

ではでは。

Python + pywin32 で COM 叩いてしゃべらせる。

どうもみむらです。
普段は SUA (UNIX 互換環境) 上で叩いているのですが、
今日は堂々と Windows 上で叩いてみます。

PyWin32 ってのをつかって、 COM コントロールを叩いてみます。

とりあえず。COM コントロールとは。

Microsoft社が提唱する、部品化されたプログラムを作成・利用するための基盤となる技術仕様。特定の機能のみを持つプログラム部品を組み合わせることでアプリケーションソフトの開発が容易になる。この仕様に基づいてデータのやりとりができるプログラム部品のことをCOMコンポーネントと呼ぶ。

COMとは【Component Object Model】 – 意味-解説-説明-定義 : IT用語辞典

だそーです! (ぉ

夢のある話をすると、COM コントロールを使うことで、
音声認識や音声合成、各種 Office アプリケーションの制御、その他 COM コンポーネントが提供する機能を
使うことが出来ます。


1.Python の導入

http://www.python.jp/Zope/download/pythoncore
上記URL から、 Python 2.x 系をインストールします。

えーと、Python 3.x 系はいろいろと変わったようで。でも動くのかなぁ。うーん

2.Python for Windows extensions の導入

http://sourceforge.net/projects/pywin32/files/pywin32/
ここから最新ビルド(一覧の 「Build???」 の数字が一番大きい物を選択)のうちの、
上で導入したバージョンと同じ物(無ければ近いバージョン)をインストール。

3.叩く。

ばんばん! ちがいます。
スタートメニューから Python を立ち上げて、

image

このように立ち上げておきます。

続けて、

import win32com.client

とタイプ。

image

今回は音声合成ということで、「Sapi.SpVoice」を使って、

Speak メソッドを叩いてしゃべらせます。

もし今回使う、「Microsoft Speech API」が気になる人は、

http://msdn.microsoft.com/en-us/library/ms723602(v=VS.85).aspx

この辺の資料を参考にして下さい。

speech = win32com.client.Dispatch("Sapi.SpVoice")
speech.Speak("Hello Python World!")

実行しますと、Win7 / Vista 環境では、多分、米国英語のおねいさんが

しゃべってくれると思います。

XP 環境ですと、なんか相当声のしゃくれたおっちゃんがしゃべってくれた気がします。

・・試してないですが。

とりあえずこんな感じでー。

WPConnect を自動的に立ち上げる。

Windows Phone 7 で MediaElement でごにょりたいときとか。

Zune を終了して、WPConnect を立ち上げる作業、
毎回の開発時に行うのは実に面倒くさい。
ということで、バッチファイルを書いてみました。

32bit 用 : [WPConnect_x86.bat]
64bit 用 : [WPConnect_x64.bat]

ダウンロードして、デバイスを接続し、起動してください。
立ち上げると、自動的に Zune を強制終了し、 WPConnect を立ち上げます。

なにげに Windows Phone の MediaElement は拡張子を見る。

MediaElement にファイルを指定する場合、

this._media.Source = new Uri(“http://mimumimu.net/hello.mp4”);

だったり、

var stream = new IsolatedStorageFileStream(“hoge.mp4”,FileMode.Open,IsolatedStorageFile.GetUserStoreForApplication());
this._media.SetSource(stream);

なんていう方法をとるわけですが、

ここで、一部の形式のファイルに関しては、拡張子を見てファイル形式を判定するようで、
特に mp4 の場合、拡張子の最後が .mp4 でないと、動いてくれません。

もちろんこれは、 Source = new Uri(); とする場合はもちろんのこと、
SetSource(); する場合でも、拡張子を参照するようです。

ブレークポイントを設定して眺めてみますと、
image

ってことで、ばっちりファイルパスが格納されてますし、
Name プロパティで取得出来るので、絶対判断基準に使ってます。

ってことで、Windows Phone 7 で MediaElement が絶対対応している形式なのに、
読んでくれないっていうことがあれば、拡張子が原因の可能性があります。 ということで。

Windows Phone 7 実機で MP4 再生をデバッグ状態で行う。

デバッグ状態、もしくは PCと接続した状態でWP7 で MediaElement を利用して再生しようとすると、
見事に再生されません。

それを解決するには、 Zune ではなく、 WPConnect というツールを利用して、
デバイスと接続する必要があります。

利用方法は以下の通り。

1.Zune を終了する。
image

2.WPConnect のフォルダを開く

フォルダは、
32bit 環境では: C:\Program Files\Microsoft SDKs\Windows Phone\v7.0\Tools\WPConnect
64bit 環境では: C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.0\Tools\WPConnect\

にあります。

3.WPConnect を実行する。

image

この際、Zune が起動していると、接続に失敗します。

失敗する場合、タスクマネージャーで Zune.exe が立ち上がっていないか確認して下さい。
image