同フォルダの音楽ファイルを.exe起動直後に再生させたいです。
で、とりあえず音楽ファイルを曲変更後同じ名前(0001)にし、再生させるようにしましたが、下記のものだとMP3のファイルしか再生できません。avi,wma,wav‥等再生させたいです。どのようにすればいいですか?
Dim music As String
Private Sub Form_Load()
music = App.Path
If Right(music, 1) <> "\" Then music = music & "\"
music = music & "0001.mp3"
WindowsMediaPlayer1.URL = music
End Sub
> とりあえず音楽ファイルを曲変更後同じ名前(0001)にし、再生させるようにしましたが
どういう意味なのか分からないのは私だけでしょうか?
ソースを見ても、フォームロード時にexeと同じフォルダにある0001.mp3ファイルを再生するだけですよね??
何がしたいのでしょうか?
そうなんですよ。0001.mp3だけしか再生できないんですよ。だからexeの入っているフォルダーに0001.aviを入れていてもエラーが出て再生できません。その再生できるやりかたを教えてください。
あとこのプログラムの狙いは起動直後に再生することと同フォルダに0001(拡張子はwindowsmediaplayerで再生できる物)と名前を変えてそれを利用することです。
訂正
「〜同フォルダに0001(拡張子はwindowsmediaplayerで再生できる物)に名前を変えてそれを利用することです。」
Dir関数を使ってみてはいかがでしょうか?
Dim sBuff As String
music = App.Path
If Right(music, 1) <> "\" Then music = music & "\"
sBuff = Dir$(music & "0001.*")
If Len(sBuff) > 0 Then
music = music & sBuff
Else
Exit Sub
End If
WindowsMediaPlayer1.URL = music
試してませんがたぶんこんな感じ。
じゃ、今日はもう帰ります( ^-^)ノ
あの
0001.aviのファイルの拡張子ってAVIファイルだから
music = music & "0001.avi"
ではないでしょうか?
もし、起動直後、ダイアログボックスを使わずに同フォルダにある
ファイルでいろんな拡張子を再生したいということならば・・・
下に方法を記載しておきます。
1、App.Pathを使いそのアプリケーションがあるフォルダのパスを取得
2、上で記載したパスを使いフォルダ検索でファイルのパスを取得し、配列に入れる
3、For文を使い、配列に入れたパスの拡張子を確認し、音楽ファイルか動画ファイルだった場合別の配列に入れる。その時、コツとしては、カウンターを取っておく。
つまり、こういうこと
Dim a() as String '←これはフォルダ検索でファイルのパスを取得した配列
Dim b() as String
Dim i as Integer
Dim k as Integer=0
for i=0 to UBound(a)
If 拡張子の確認 then
'動画ファイルか音楽ファイルだった場合の処理
b(k)=a(i)
k=k+1
End If
next
4、bの配列の数を数える
5、WindowsMediaPlayer1.URL = b(0)
とこんな感じでパスをWindowsMediaPlayerに入れる。
manabuさんが書いているソースはVB6のソースですね。
あと、ここに書いてあるソースVB.NETのソースです。
でも、結果的にこのぐらいの関数はVB6でもおそらくあるでしょう。
私はVB6はさわり程度にしかやっていないので、聞かれていも答えようがありません。
VB.NETなら答えられますけどね。
とりあえず、この手順で何とかなると思います。
ダメだったら根性で・・・(笑
解決しました。マグさんnanashiさんありがとうございました。本とか見たりして調べたりしたんですけどわからず、やっぱりここに来ると色々な関数やその使い方がわかり大変重宝します。今後ともよろしゅうに。
編集 削除