あなたの天然記念物
ホーム更新雑談鉄ゲタランドナーコースガイド自転車JKFFハードソフトダウンロードLinuxリンク(Amiga)リンク(その他)連絡先経歴
    目次 ↓下へ ↑上へ
  1. アナログ回線用ダイヤルアップルータ
  2. AIFFファイルのループ再生と停止
  3. RedHat 7.2でISDNルータ
  4. ディスクなしパソコンの構築
  5. ディスクなしパソコンの構築−その2−
  6. ディスクなしパソコンの構築−その3−
  7. PLIPのパケット転送方法
  8. セマフォを使ってみました
  9. ディスクなしパソコンの構築−その4−
  10. LinuxでADSL
  11. ADSLモデムのWeb設定画面を表示
  12. LANで電源ON
  13. ハードディスクを単独運転からRAID1…
  14. Daily Full Backup
  15. FastTrakのドライバを静的リンク
  16. PCと携帯の兼用サイトを作成
  17. CGIスクリプトにSeLinuxからIPC使…
  18. アクセス規制情報取得CGI「またかよ…
AIFFファイルのループ再生と停止 (2001.07.06)


          感謝

EsounDに関わった皆さん。大勢いらっしゃるので、
/usr/doc/esound-0.2.14/AUTHORS
をご覧ください(この時点でLinuxユーザ限定)。
そして、それらを利用されている方々に感謝を込めて。


          まえおき

たぶん、もっと簡単な方法があると思うのですが、
「やりたい」と思ってから、実際にできるまでの時間を最短にしています。
下記の中で「〜できない」は「私は〜する方法を知らない」と読んでください。
もし、都合の悪いことがあれば、エンリョなく連絡ください。
なお、一部の表現がAmigaに偏っているのは、私の趣味です。


AmigaでCDを聴いていたのですが、負荷が思っきり掛かるときに備えて、
隣のLinuxで再生したところ、1曲だけの繰返し再生ができません。

LinuxでCDからAIFFを取得できなかったので、
AmigaにCDを入れてAIFFをLinuxにコピーしました。
(AmigaのCD-ROMドライバAsimCDFSは、音楽CDを入れると仮想AIFFファイルを用意します。)
ファイルサイズは50MBですが、空きが5GBもあるので気にしません。
ファイル名を「shanhai no kaze.aiff」にしてダブルクリックしたところ
画面はないまま再生しました。
フォルダの「コマンド|MIME形式の編集...」から、AIFFファイルを再生したのは
esdplayと判明しました。画面はないのでコマンドラインに違いなく、
ktermから「esdplay "shanhai no kaze.aiff"」としても再生できました。
「esdplay --help」で、オプションの一覧を表示しましたがループはないので、
CGIでおなじみのPerlスクリプトでループしました。

再生を停止させるためCtrl+Cを入力すると曲の頭から再生をします。
esdplayの実行が止まっても、Perlスクリプトの実行に影響ないようです。
Perlの本を読んで、Ctrl+CのときにPerlスクリプトも終了するよう改善しました。

デスクトップにアイコンを用意して、ダブルクリックでPerlスクリプトを実行にしたら、
ktermがないのでCtrl+Cを入力できません。(爆笑)
(再生するまで気がつきませんでした。久しぶりのヒットです。)
「ps -A | grep esd」としたら「esd」「esdplay」の2個が見つかり
プロセスIDから「esd」のほうが若いとわかったので、
これをkillしてみると、曲の頭から再生しました。
次にesdplayをkillしてみると、今度は沈黙しました。
この作業もスクリプトにして、アイコンを用意しました。

これで、デスクトップのアイコンでループ再生、停止ができるようになりました。
下記に作成したファイルの内容を紹介します。


shanhai no kaze.aiff

CDからコピーした曲です。
著作権者が損しないようにCDを持ったままです。
それに全身の写真も入っているし(^_^)


.gnome-desktop/shanhai no kaze
ループ再生をするPerlスクリプトです

#!/usr/bin/perl

$aifffile = '/home/public/music/shanhai no kaze.aiff';
while(1)
{
    $rc = system("esdplay '$aifffile'");
    if (0 != $rc)
    {
        last;
    }
}


.gnome-desktop/stop esdplay
再生を止めるshスクリプトです

#!/bin/sh

kill `ps -A | grep esdplay | awk '{print $1}'`


おまけ

曲名を見ても誰の曲か知らない人は、こっ恥ずかしいのでセンサクしないでください。
すぐ誰かわかった人は、あなたも同じ趣味の人なので、私を指差して笑わないように。(笑)

どのページも無断でリンクして構いません。
Valid HTML 4.01 Transitional