[過去ログ] SDLスレ (987レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
741(1): 378 [sage] 05/02/13 10:02:12 ID:msvBWsr3(1) AAS
>>735735(2): 名前は開発中のものです。 [] 05/02/06 19:38:19 ID:GSZ53bwF(1) AAS
>>727
SDL_mixerでは、RWopを使ってストリーム再生するMix_LoadMUS_RWはオプションだから、直接RWopが全てに突っ込めるわけではないです。
USE_RWOPSを定義しておいてやれば使えるけど、SMPEGを利用したmp3再生には対応していない模様。
どうも、Mix_LoadMUSでしかmp3は使えないよう。
ってことは、mp3でなく、oggを推奨していますってことなのかな?
> ってことは、mp3でなく、oggを推奨していますってことなのかな?
ogg の実装が一番楽だったってだけだよ。
libogg の方に登録する読み込み関数のポインタを
FILE 系から RWops 系にするだけだったから。
SDL_mixer は、USE_RWOPS の場合は RWops 版と FILE 版をコンパイルして、
そうでない場合は FILE 版だけをコンパイルする、というスタンスを取ってるせいで、
mp3, wav, midi は実装なんて読み込む部分以外全部同じなのに
両方のバージョンが必要になってる。
以前、全ソースを RWops 版で統一して、
Mix_LoadMUS は内部で単に Mix_LoadMUS_RW か cmd を呼ぶだけ、
という実装でパッチ投げたんだけど返答は無かった。
Mix_LoadMUS(_RW) レベルじゃなくて、
mp3, wav, midi それぞれの実装に FILE 版と RWops 版のインターフェイスを作らないと
受け入れてもらえそうにない。
めんどいなあ。ほとんど関数名置き換えるだけだから簡単なんだけど。
767: 名前は開発中のものです。 [] 05/03/11 23:52:57 ID:YMDZazr7(1) AAS
>>740740(1): 名前は開発中のものです。 [] 05/02/13 00:50:02 ID:phhxXInx(1) AAS
>>735
御意。うちは USE_RWOPS を定義して ogg を読み込んでます。
SDL_mixer の music.c を見てると、Mix_LoadMUS_RW() は
ogg, mikmod 以外は実装されてないですね…。
ということは mp3 に限らず cmd, wav, midi もダメっぽい。
ところで cmd て何?って調べてみたら
外部プログラムを実行して曲を再生するんですね…。
music_cmd.c を読んでみたら
冒頭に /* This is a UNIX-specific hack */
再生時に music->pid = fork();
一時停止時に kill(music->pid, SIGSTOP);
再開時に kill(music->pid, SIGCONT);
停止時に kill(music->pid, SIGTERM);
とかやってて、ビビリました。
>>741
返答ありがとう。なるほど、やっぱり自分と同じようなこと試して知識得てる人って
いるんだな…流石だ。
741さんは更に上を行っているようですね。確かに、FILEポインタを使っているのであれば
SDL_RWopsを使うように変更するだけでいいから、確かに移植は楽だ。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.038s