HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1201
モンシアmemfileの使い方について5解決


モンシア

リンク

2012/12/1(Sat) 22:41:30|NO.50995

memfileで音楽を再生することはできないのでしょうか。スプリクトは


fname="aaaa.wav" notesel buf noteload fname memfile buf mmload"MEM:s.wav",1 mmplay 1

です。これだと再生されません。ご指摘お願いします。



この記事に返信する


kanahiron

リンク

2012/12/1(Sat) 23:10:38|NO.50996

なぜバイナリデータを扱うのにnote系でやるのかが謎ですが

fname="aaaa.wav" exist fname fsize = strsize sdim buf,fsize+1 bload fname,buf,fsize memfile buf,0,fsize mmload"MEM:s.wav",1 mmplay 1
です



FunnyMaker

リンク

2012/12/1(Sat) 23:20:16|NO.50997

kanahironさんの言う通りですね。
無用かもしれませんが解説を付けると、↓

fname="aaaa.wav" exist fname : size = strsize;ファイルのサイズを調べる。(詳しくはヘルプ) dim buf,size;事前にbufのサイズを確保せねば、尻が切れる。「sdim」じゃなくて「dim」。(sdimでも一応いけるかも?) bload fname,buf,size,0;サウンドファイルは文字列データではないので、使うのはbloadにしましょう。 ;あとの部分は先程のものでOKです。 memfile buf mmload "MEM:s.wav",1 mmplay 1



FunnyMaker

リンク

2012/12/1(Sat) 23:23:19|NO.50998

失礼しました。
直前の書き込みの3行目辺り。
sdimが正しいです。盛大にミスって逆にしていました。



inovia

リンク

2012/12/1(Sat) 23:31:14|NO.50999

>なぜバイナリデータを扱うのにnote系でやるのかが謎ですが
ファイルを丸ごと読み込むだけだったら、NULLが含まれているバイナリファイルをnoteloadで読み込んでも大丈夫だったりします。
notesaveする場合はNULLのある所で切ってしまうので、意図しない結果になりますが。

それとメモリストリーム機能を使いmmloadを使った場合は2MB以上のWAVEファイルは読み込めなかったはずです。
(パックファイルと同様の制約)

参考までに
【HSP3】2MB以上のWAVE形式のファイルをメモリ上で再生
http://codetter.com/?p=802



モンシア

リンク

2012/12/2(Sun) 06:04:55|NO.51003

kanahironさん、FunnyMakerさん
ありがとうございました。自分も最初そのように書いたのですが再生されなくて…

inoviaさん
3MBのファイルでやってました。参考のURLで無事再生することができました。ありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.