mciSendStringでmp3がopen出来ない への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 (削除されました)  ()
投稿日時
2017/9/28 15:48:02
(削除されました)
投稿者 ねこまっしぐら  (社会人)
投稿日時
2017/9/28 15:31:54
kiku様回答ありがとうございます
書くの忘れてましたがもちろんtype指定もしてもだめでした
それとmp3以外は再生出来ているのでDeclareの違いは問題無いかなと
mciqtz32.dllが原因かなと思うのですがWMPもこれ使ってるはずなので結局分からん、と
(WMPでは問題なくmp3再生出来てます)
書くの忘れてましたがもちろんtype指定もしてもだめでした
それとmp3以外は再生出来ているのでDeclareの違いは問題無いかなと
mciqtz32.dllが原因かなと思うのですがWMPもこれ使ってるはずなので結局分からん、と
(WMPでは問題なくmp3再生出来てます)
投稿者 kiku  (社会人)
投稿日時
2017/9/27 15:55:10
下記にMP3を再生する方法が記載されています。
https://dobon.net/vb/dotnet/programing/playmidifile.html
上記のコードと開示のあったコードを比較すると、
mciSendStringの定義が微妙に違うのと、
open時にパラメータ(type mpegvideo)がないことが
わかると思います。
まずはここを改善してみたらどうでしょう。
https://dobon.net/vb/dotnet/programing/playmidifile.html
上記のコードと開示のあったコードを比較すると、
mciSendStringの定義が微妙に違うのと、
open時にパラメータ(type mpegvideo)がないことが
わかると思います。
まずはここを改善してみたらどうでしょう。
投稿者 ねこまっしぐら  (社会人)
投稿日時
2017/9/16 14:09:14
追加です
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI32
にはMPEGVideoキーはあって値はmciqtz32.dllです
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI32
にはMPEGVideoキーはあって値はmciqtz32.dllです
投稿者 ねこまっしぐら  (社会人)
投稿日時
2017/9/16 13:56:31
windows7 vb.net2005です
mciSendStringでmp3ファイルをオープンしようとすると
>指定されたデバイス ドライバーの読み込み中に不明な問題が発生しました。
が発生します
コードは以下です
Declare Function mciSendString Lib "winmm" Alias "mciSendStringA" ( _
ByVal lpstrCommand As String, _
ByVal lpstrReturnString As String, _
ByVal uReturnLength As Integer, _
ByVal hwndCallback As IntPtr) _
As Integer
MCICmd = "open """ & PlayFile & """ alias Media"
mciSendString(MCICmd, "", 0, IntPtr.Zero)
ググると環境依存みたいな記述がありましたが対処方法は無いでしょうか
(ちなみにmidiとwavは再生出来ました)
mciSendStringでmp3ファイルをオープンしようとすると
>指定されたデバイス ドライバーの読み込み中に不明な問題が発生しました。
が発生します
コードは以下です
Declare Function mciSendString Lib "winmm" Alias "mciSendStringA" ( _
ByVal lpstrCommand As String, _
ByVal lpstrReturnString As String, _
ByVal uReturnLength As Integer, _
ByVal hwndCallback As IntPtr) _
As Integer
MCICmd = "open """ & PlayFile & """ alias Media"
mciSendString(MCICmd, "", 0, IntPtr.Zero)
ググると環境依存みたいな記述がありましたが対処方法は無いでしょうか
(ちなみにmidiとwavは再生出来ました)
それでも間違いとは言い切れませんが、下記の方が望ましいと思います。
> mciqtz32.dllが原因かなと思うのですが
AnyCPU ビルドにせず、x86 ビルドと x64 ビルドのそれぞれで試してみるとか。
> mciSendString(MCICmd, "", 0, IntPtr.Zero)
第 2 引数に「""」を渡すべきではありません。
第 3 引数を 0 を指定する場合、第 2 引数は Nothing を指定する必要があります。
第 3 引数に 1 以上の値を指定する場合、第 2 引数はその長さのバッファを含んだ変数を渡します。