🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: fj.lang.visualbasic
8 messages
8 total messages Started by tutomu Sun, 22 Mar 1998 00:00
waveファイルをコードに埋め込むには?
#366
Author: tutomu
Date: Sun, 22 Mar 1998 00:00
16 lines
1413 bytes
waveファイルをコードに埋め込むにはどうしたらよいでしょうか?
ある数字を読み上げるコードを書いています。0から9までのWAVEを作り、
酒井さんのページ
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9802/mci/
を参考にファイルを読み込んで発音させることができました。ただWAVEがLAN
上に
あるためいくらキャッシュに入るといっても遅いのと、併せて、できるならWAVE
ファイルを
むき出しで使うのは避けたいという気持ちもあり、調べてみますとリソースという言
葉に行き当たりました。
また酒井さんのページの中にも、メモリー位置を指す変数についてわずかながら触れ
てあります。
が、それから先は私の努力不足だと思いますが、さっぱり見えてきません。
私の環境はVB5SP3です。これ以外の環境は持ちません。
何とかなるものでしょうか。どなたかご教示下さい。
Re: wave ファイルをコードに埋め込むには?
#295
Author: tutomu
Date: Wed, 25 Mar 1998 00:00
48 lines
2585 bytes

Sato Masahiro wrote in message <6fa46k$8i5$1@hawaii.ykhm.cij.co.jp>...
>In article <6f2ljh$4b9$1@nn-os001.ocn.ad.jp>, tutomu wrote:
>>waveファイルをコードに埋め込むにはどうしたらよいでしょうか?
>
>私の記憶が正しければ、「VB5」には、リソースコンパイラが付属して
>いるのですよね? このリソースコンパイラにより、wave リソースを
>含んだリソースファイルを作成すればよいのではないでしょうか。
>
>その後は、例えば PlaySound 関数を使用しているならば、
>
>PlaySound waveリソース名, App.hInstance, SND_REOSURCE
>
>などとすればできそうな気がします。
>
>--
>Computer Institute of Japan, Ltd.
>佐藤正宏 masahiro@cij.co.jp
>
ご教示いただき助かります。以下のようにしてリソースファイルを作成し、発音させ
ようとしましたが
だめでした。報告しますので、できれば重ねてご教示下さい。
RC.EXEを使ってRESファイルを作成しました。元のファイルは0から9までのWAVファ
イルです。
no0 SOUND filename0
no1 SOUND filename1
・
・
のように記述したRCファイルを
rc /r Rcfile.rc
としてコンパイルし、一応、RESファイルはできたので、(サイズも妥当なもので
す。)
VBのファイルの追加でプロジェクトに追加しました。
次に、標準モジュールのmain()の最後でLoadResDataメソッドを用いロードし
ようとしましたが、"no0"のリソースは存在しない
と、拒絶されてそれから先に進めません。コードは次の通りです
byteArry()=LoadResData( "no0" , 10 )

10 とあるのは、ユーザー定義リソースとリファレンスに記述してあったので、訳も
分からずその通りに書きました。

まだ、リソースの取り扱いがさっぱり分かっていないのだと思います。どのように質
問をまとめたらよいか分かりませんが、
全体的な理解も含めてご教示願えるなら幸いです。

篠原 勉
sinohara@bronze.ocn.ne.jp
Re: wave ファイルをコードに埋め込むには?
#296
Author: Sato Masahiro
Date: Wed, 25 Mar 1998 00:00
45 lines
2134 bytes
In article <6far4p$ilk$1@nn-os001.ocn.ad.jp>, tutomu wrote:
>byteArry()=LoadResData( "no0" , 10 )
>
>10 とあるのは、ユーザー定義リソースとリファレンスに記述してあったので、訳も
>分からずその通りに書きました。

リファレンスには、LoadResData メソッドの第二引数“format”の
説明で、「...ユーザー定義のリソースの文字列の名前を指定する
こともできます。」と記述されていると思います。

この「リソースの文字列の名前」というのは、具体的には、

>no0 SOUND filename0
>no1 SOUND filename1

と記述したときの、“SOUND”という文字列のことです。

従って、

>byteArry()=LoadResData( "no0" , 10 )

の箇所で、第二引数を"SOUND"にかえてやれば、うまく動くのではないかと
思います。

以下は、私の環境で実際に試してみて、動いた例です。

-------- test.rc ここから --------
    no0 SOUND \windows\ding.wav
    no1 SOUND \windows\chimes.wav
-------- test.rc ここまで --------

-------- main() ここから --------
    Dim buf As Variant
    buf = LoadResData("no0", "SOUND")
    MsgBox Len(buf)
-------- main() ここまで --------

(リソース中で、no0、no1 などの記述が、実際には101、102などの
数値であるならば、LoadResData メソッドの第一引数はダブル
クォーテーションでかこっては行けません。)

-- 
Computer Institute of Japan, Ltd.
佐藤正宏 masahiro@cij.co.jp
Re: wave ファイルをコードに埋め込むには?
#388
Author: Sato Masahiro
Date: Wed, 25 Mar 1998 00:00
17 lines
1173 bytes
In article <6f2ljh$4b9$1@nn-os001.ocn.ad.jp>, tutomu wrote:
>waveファイルをコードに埋め込むにはどうしたらよいでしょうか?

私の記憶が正しければ、「VB5」には、リソースコンパイラが付属して
いるのですよね? このリソースコンパイラにより、wave リソースを
含んだリソースファイルを作成すればよいのではないでしょうか。

その後は、例えば PlaySound 関数を使用しているならば、

PlaySound waveリソース名, App.hInstance, SND_REOSURCE

などとすればできそうな気がします。

-- 
Computer Institute of Japan, Ltd.
佐藤正宏 masahiro@cij.co.jp
Re: wave ファイルをコードに埋め込むには?
#301
Author: tutomu
Date: Thu, 26 Mar 1998 00:00
43 lines
2349 bytes

Sato Masahiro wrote in message <6fb1mu$ge9$1@hawaii.ykhm.cij.co.jp>...
>In article <6far4p$ilk$1@nn-os001.ocn.ad.jp>, tutomu wrote:
>>byteArry()=LoadResData( "no0" , 10 )
>リファレンスには、LoadResData メソッドの第二引数“format”の
>説明で、「...ユーザー定義のリソースの文字列の名前を指定する
>こともできます。」と記述されていると思います。
>
>この「リソースの文字列の名前」というのは、具体的には、
>
>>no0 SOUND filename0
>>no1 SOUND filename1
>
>と記述したときの、“SOUND”という文字列のことです。
>
>従って、
>
>>byteArry()=LoadResData( "no0" , 10 )
>
>の箇所で、第二引数を"SOUND"にかえてやれば、うまく動くのではないかと
>思います。
>
>以下は、私の環境で実際に試してみて、動いた例です。
>
>-------- test.rc ここから --------
>    no0 SOUND \windows\ding.wav
>    no1 SOUND \windows\chimes.wav
>-------- test.rc ここまで --------
>
>-------- main() ここから --------
>    Dim buf As Variant
>    buf = LoadResData("no0", "SOUND")
>    MsgBox Len(buf)
>-------- main() ここまで --------
>
ありがとうございました。
済みませんがその次ですが、小生はSndPlaySound関数を用いようと思っていますが、
その方向は間違いないでしょうか。
この時、定数SND_MEMORYの取り扱いと、さらには、メモリー上のどこにデータがある
のかを、この関数に教えてやるには
どうしたらよいのでしょうか。現在あれこれ試してみましたが埒があきません。よ
かったらご教示下さい。
Re: wave ファイルをコードに埋め込むには?
#313
Author: Sato Masahiro
Date: Fri, 27 Mar 1998 00:00
32 lines
1887 bytes
In article <6fd6jk$hpt$1@nn-os001.ocn.ad.jp>, tutomu wrote:
>済みませんがその次ですが、小生はSndPlaySound関数を用いようと思っていますが、
>その方向は間違いないでしょうか。

こちらに関しては、残念ながら分かりません。多くのソースでは、sndPlaySound 
関数ではなく、PlaySound 関数を使用しているようですが...。

>この時、定数SND_MEMORYの取り扱いと、さらには、メモリー上のどこにデータがある
>のかを、この関数に教えてやるには
>どうしたらよいのでしょうか。現在あれこれ試してみましたが埒があきません。よ
>かったらご教示下さい。

メモリー上のデータを、例えばバイト配列にコピーした後に、sndPlaySound 関数に
渡してやればよさそうな気がします。

Dim Bytes() As Byte
Dim I As Integer

Redim Bytes(UBound(buf)) 'buf は、前回のサンプルで値が設定されたものとします
For I = 0 To UBound(buf)
    Bytes(I) = buf(I)
Next

sndPlaySound Bytes(0), SND_MEMORY

ここで、sndPlaySound 関数の Declare 宣言において、第一引数は、
“Byref SoundName As Byte”などとしなければいけません。

-- 
Computer Institute of Japan, Ltd.
佐藤正宏 masahiro@cij.co.jp
Re: wave $B%U%!%$%k$r%3!<%I$KKd$a9~$`$K$O!)(J
#243
Author: Hideaki.Ishikawa
Date: Sat, 04 Apr 1998 00:00
22 lines
1254 bytes

>
$B:Q$_$^$;$s$,$=$N<!$G$9$,!">.@8$O(JSndPlaySound$B4X?t$rMQ$$$h$&$H;W$C$F$$$^$9$,(J
$B!"(J
> $B$=$NJ}8~$O4V0c$$$J$$$G$7$g$&$+!#(J
>
$B$3$N;~!"Dj?t(JSND_MEMORY$B$N<h$j07$$$H!"$5$i$K$O!"%a%b%j!<>e$N$I$3$K%G!<%?$,$"(J
$B$k(J
> $B$N$+$r!"$3$N4X?t$K65$($F$d$k$K$O(J
>
$B$I$&$7$?$i$h$$$N$G$7$g$&$+!#8=:_$"$l$3$l;n$7$F$_$^$7$?$,T?$,$"$-$^$;$s!#$h(J
> $B$+$C$?$i$465<(2<$5$$!#(J
VisualBasic$B$r%$%s%9%H!<%k$5$l$?$H$-$K@8@.$5$l$k(J
$B%5%s%W%k$NCf$K!"$^$5$K$=$l$r9T$J$C$F$$$k%5%s%W%k(J
$B$,$"$j$^$9!#0lEY;29M$K$5$l$F$_$F$O$I$&$G$7$g$&$+!)(J

[\\VB\samples\PGuide\ATM\]

$B$G$O$G$O!#(J
-- 
= $B@P@n1QL@(J E-MAIL:hidevb@mb.infoweb.ne.jp =
Re: wave ファイルをコードに埋め込むには?
#260
Author: tutomu
Date: Tue, 07 Apr 1998 00:00
27 lines
1796 bytes

Hideaki.Ishikawa wrote in message <6g48db$3vc$1@nw012.infoweb.or.jp>...
>この時、定数SND_MEMORYの取り扱いと、さらには、メモリー上のどこにデータがあ
>る
>> のかを、この関数に教えてやるには
>>
>どうしたらよいのでしょうか。現在あれこれ試してみましたが埒があきません。よ
>> かったらご教示下さい。
>VisualBasicをインストールされたときに生成される
>サンプルの中に、まさにそれを行なっているサンプル
>があります。一度参考にされてみてはどうでしょうか?
>
>[\\VB\samples\PGuide\ATM\]
>
>ではでは。
>--
>= 石川英明 E-MAIL:hidevb@mb.infoweb.ne.jp =


有り難うございました。うまく行きました。
ところで、さらに気がかりな点が出てきました。リソースいっぱんの事かも知れませ
んが
メモリー上に配置されたリソースはそのまま放置しても大丈夫なのでしょうか。
必要に応じリソースをメモリーから解放するにはどうすればよいのでしょうか。
sinohara@bronze.ocn.ne
篠 原  勉
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads