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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0530
ゆうやんmmplayで別のスピーカー鳴らしたい(mci使用)5未解決


ゆうやん

リンク

2020/5/30(Sat) 11:43:35|NO.90666

mmplayで別のスピーカー鳴らすことはできないでしょうか?
mciでほかの再生デバイスに鳴らすコマンドは

mci "set エイリアス名 output 再生デバイス"
ですが、これを利用して、他の再生デバイスに音を鳴らすことはできないでしょうか?
わかる方がいたら、ご教授ください。

#uselib "winmm.dll" #cfunc waveOutGetNumDevs "waveOutGetNumDevs" dialog "wav",16 if stat=0 mmload refstr,0,0 mmplay 0 randomize mci "set myid output "+rnd(waveOutGetNumDevs()) mes stat
mciのstatを確認してみたところ、-1と出て失敗してしまいます…。

参考にしたスレッド
http://hsp.tv/play/pforum.php?mode=pastwch&num=79556
http://hsp.tv/play/pforum.php?mode=pastwch&num=54410



この記事に返信する


MillkeyStars

リンク

2020/5/31(Sun) 02:19:15|NO.90669

まず前提条件ですが、2MB を超える wave ファイルであること。
(mmload の仕様で wave が 2MBを超えないファイルはすべてメモリにロードされる為、mci が使われません。)

mci "capability myid outputs" : mes ""+stat の値が 2以上であることが前提です。
(スピーカーが複数有効にされていない場合、出力は 1 となります。)

上記条件をクリアした際に、mci "set myid ouput <<Device No.>>" は機能します。



ゆうやん

リンク

2020/5/31(Sun) 11:52:16|NO.90675

MillkeyStarsさん、ありがとうございます!
2MB未満のwavファイルでも、mciを使わずに他のスピーカーに音を鳴らすことはできないでしょうか?



MillkeyStars

リンク

2020/5/31(Sun) 12:34:12|NO.90676

再生遅延を気にしないのであれば、普通に mci で読み込んでそれを再生するのが一番だと思うよ。
wave 限定であれば、「waveOutOpen」とか。

今回の問題は、mmload 側の 2MB 制限というのが問題だから最初から mci で読み込んじゃえば制限は関係ないです。



ゆうやん

リンク

2020/6/2(Tue) 16:53:03|NO.90677

一応、2MB以上のwavファイルを再生を試してみたところ、反映されたみたいですが、音が一瞬だけ止まってしまいます。



ゆうやん

リンク

2020/11/15(Sun) 08:49:27|NO.91798

原因がわからないので教えてほしいです・・・。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.90666への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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