2018/03/29更新

[Python] ビープ音を鳴らす(Windows/Mac対応)

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
Pythonのお仕事でビープ音を鳴らす実装をしたので、今日はそれをブログに書きたいと思います。



ビープ音を鳴らす実装

さっそくですが、ビープ音を鳴らす実装です。ビープ音はWindowsとMacでそれぞれ実現方式が違うので、platform.system()で環境別に実装します。
def beep(freq, dur=100):
    """
        ビープ音を鳴らす.
        @param freq 周波数
        @param dur  継続時間(ms)
    """
    if platform.system() == "Windows":
        # Windowsの場合は、winsoundというPython標準ライブラリを使います.
        import winsound
        winsound.Beep(freq, dur)
    else:
        # Macの場合には、Macに標準インストールされたplayコマンドを使います.
        import os
        os.system('play -n synth %s sin %s' % (dur/1000, freq))

// 2000Hzで500ms秒鳴らす
beep(2000, 500)
このようにWindowsとMacで実装を分けることで、ビープ音を鳴らすことができます。

なお、winsound.Beepは、WindowsのPCでビープ音が搭載されていない場合やスピーカーを鳴らせない場合には、RuntimeErrorが発生します。



参考情報

各種利用技術の詳細は、以下をご確認ください。

34.4. winsound — Windows 用の音声再生インタフェース — Python 3.6.4 ドキュメント

また、Macのplayコマンドの詳細は、以下で確認できます。
$ man play



最後に

今回はMatplotlibのグラフに対するインタラクションで、ビープ音を鳴らすために実装しました。Pythonは色々な用途に使えて楽しいですね。

最後になりますが本ブログでは、Python、フロントエンド、Swift、PHP、Node.js、Linux、Java、インフラ、Go言語、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSTwitterをフォローして貰えたら嬉しいです ^ ^

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。