From: "たむらけんいち" Date: 2003-02-24T02:30:50+09:00 Subject: [ruby-list:37156] Re: Ruby/SDLで複数のmpegを扱うには たむらです。大林さ〜ん。 On Tue, 18 Feb 2003 20:08:12 +0900 katata@chugoku-pc.ac.jp wrote: > はじめまして、片多と申します。 > Ruby/SDLをいろいろと試しているのですが、複数のmpegファイルをを扱ってみようと思い、 > 以下のようなスクリプトを動かしてみると、 :snip > 7行目の「mpeg2 =」の行で以下のようなエラーがでます。 > > -- > plaympeg.rb:7:in `load': Couldn't load A1_10b.mpg: Audio device is already opened (SDL::Error) > from plaympeg.rb:7 > -- > > すでにオーディオデバイスは開いているよ、とのことですが、 > どのようにすればよいのでしょうか。 > 7行目をコメントにすればもちろん動画が再生されます。 > > > 一応Ruby/SDLのソースを見てみました。 > rubysdl_smpeg.cの52行目、 > -- > mpeg = SMPEG_new(STR2CSTR(filename),NULL,SDL_WasInit(SDL_INIT_AUDIO)); > -- > が関係してそうな気がしますが、あまり詳しいことまではよくわからないです。 > > ともかく1つのスクリプトの中で複数のmpegファイルを扱えれば、思っているので > 何かご存知の方がおられましたらアドバイス等お願いできますでしょうか。 単純に上の行は、オーディオが初期化されてるかを判断して既に初期化されてたので 例外を起こしてます。smpeg 附属の mpeg プレイヤーは二つ目以降は「音が出ないからね」と メッセージだけ出して、MPEG再生(画像)は行ないますが、そのようにしたほうが良いとのことでしょうか ? 例えばミュージッククリップの MPEG を二つ同時に再生するなんて用途は余り現実的ではなさそうなので 上の仕様で良ければ、修正はそんなに難しくはないと思われます。 -- たむら (http://tamura.tdiary.net)