
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
質問者さんからの反応が全く無いので、これっきりにしますが、
midiファイルだと長さや音源の数で
再生まで時間が掛かる場合がありますが
これは仕方がないことだとおもいます。
wma、mp3 などでは10年以上前のPCでも遅延は発生しないです。
以前色々と試した時には、
まったく反応がなかったり、輪唱状態になったり (^_^;)
面白かったです orz
ダメもとで再生前に
Sub CloseMCI()
Dim pRc As Long
pRc = mciSendString("Close All", "", 0, 0) '全てのDeviceを閉じて解放 ?
If pRc <> 0 Then
Stop 'エラーの場合ここで止まる
End If
End Sub
を実行すると良いかもです。
http://homepage1.nifty.com/rucio/main/dotnet/Sam …
No.3
- 回答日時:
こんばんは。
>すぐに再生されるときと、再生されるまでに3秒くらいかかるときがあるのですが、なぜでしょうか?
おそらく、オーバーヘッドといって、オブジェクトを読み込むためのメモリ確保の時間でしょう。解決は方法は特別ありませんが、一端、空ファイルを起動時などに読ませることができれば、速く再生するはずです。
No.2
- 回答日時:
原因は存じませんが、昔Wavをメモリに読み込んで演奏するコードを切り貼りしたのを思い出して引っ張り出して来ました。
一旦読み込んだ後はメモリアクセスなので、時間は食わないと思います。但し、音源はWavファイル限定です。短時間の音源を即鳴らしたい時には使えるかもしれません。Win7Home(64bit) + xl2010(32bit)で動作しました。全然短くない60M程度のファイルで試したところ、タスクマネージャで眺めるとメモリの占有も60M程度でした。ご参考まで。
'☆UserForm1モジュール
'Wav限定
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" ( _
ByRef pszSound As Byte, ByVal hmod As Long, ByVal fdwSound As Long) As Long
'PlaySound(0,0,0)で止まるという記事通りには止まらないので苦肉の策
Private Declare Function PlaySound2 Lib "winmm.dll" Alias "PlaySoundA" _
(ByVal pszSound As String, ByVal hmod As Long, ByVal fdwSound As Long) As Long
Private Const SND_ASYNC = &H1
Private Const SND_MEMORY = &H4
Private Const SND_LOOP = &H8
Dim BufSndTest() As Byte
Private Sub CommandButton1_Click()
PlaySound BufSndTest(0), 0, SND_ASYNC + SND_MEMORY + SND_LOOP
End Sub
Private Sub CommandButton2_Click()
Call PlaySound2(vbNullString, 0, 0)
End Sub
Private Sub UserForm_Activate()
ReadSoundBuffer GetDesktopPath & "\hoge.wav"
End Sub
'メモリに読み込んで、以降メモリデータを演奏
Private Function ReadSoundBuffer(WrkSndFile As String)
Dim WrkNumber As Long
WrkNumber = FreeFile()
Open WrkSndFile For Binary As WrkNumber
ReDim BufSndTest(LOF(WrkNumber))
Get WrkNumber, , BufSndTest
Close WrkNumber
End Function
'テスト用
Private Function GetDesktopPath() As String
Dim wScriptHost As Object, strInitDir As String
Set wScriptHost = CreateObject("Wscript.Shell")
GetDesktopPath = wScriptHost.SpecialFolders("Desktop")
Set wScriptHost = Nothing
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
【関数】【マクロ】売上X円以上...
-
エクセルシートの見出しの文字...
-
【マクロ 画像あり】Exact関数...
-
空白処理を空白に
-
同じ名前(重複)かつ 日本 ア...
-
excel
-
if関数の複数条件について
-
エクセルでフィルターした値を...
-
空白のはずがSUBTOTAL関数でカ...
-
【マクロ】エラー【#DIV/0!】が...
-
【マクロ】数式を入力したい。...
-
【関数】3つのセルの中で最新...
-
Excelで4択問題を作成したい
-
エクセルの文字数列関数と競馬...
-
オートフィルターの絞込みをし...
-
表計算ソフトでの様式の呼称
-
【画像あり】【関数】指定した...
-
エクセルに写真が貼れない(フ...
-
【関数】=EXACT(a1,b1) a1とb1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
YouTubeの再生中、勝手に巻き戻...
-
動画?を再生したい
-
動画再生中の音割れについて
-
パソコンの動きがコマ送りのよ...
-
Windows Media Playerの再生速...
-
CDの内容をブルーレイディスク...
-
VCDが見れません!
-
【mac】外付けHDによる映像の音...
-
EXCEL VBA でAPIを使って
-
DivX
-
AVIという動画ファイルがVista...
-
Macで焼いたCDデータファイルを...
-
Dドライブが壊れた?
-
sony media library earth
-
メディアプレーヤー11をイン...
-
TV録画をSWデコーダーで見ると...
-
サウンドのプロパティで音がう...
-
CDのビデオを再生させることが...
-
難問 waveファイルを繰り返し...
-
コマンドプロンプト
おすすめ情報