VB2005の音楽再生プログラムを書いています。教えtください。事前にline()という配列にファイル名が格納されています。30くらいのファイルを連続再生します。以下のコードは正しく再生されます。TextBox4.Textに現在再生しているファイル名を表示したいのですが、表示されません。すべての再生が終わると、最後のファイル名が表示されます。デバックするとファイル名は正しく入っています。どうやら音楽再生側に制御がわたりっきりでフォーム側への制御が戻ってこないように見えます。よってスレッドでの再生としましたが、同様に表示されませんでした。どのようにしたらよろしいでしょうか?


Private Sub Button1_Click(..) Handles Button1.Click
Dim j As Integer
Dim threadA As Thread
For k = 0 To i - 1
For j = 0 To Integer.Parse(TextBox3.Text) - 1
TextBox4.Text = line(k)
threadA = New Thread(New ThreadStart(AddressOf TestMethod))
threadA.Start()
threadA.Join()
System.Threading.Thread.Sleep(Integer.Parse(TextBox1.Text))
Next j
Next k
End Sub
Private Sub TestMethod()
player = New System.Media.SoundPlayer("c:\" + line(k) + ".wav")
player.PlaySync()
End Sub

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/11/03 16:20:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:oil999 No.2

回答回数1728ベストアンサー獲得回数320

ポイント100pt

TestMethod内で
TextBox4.Text = line(k)
を実行するように変えてみてください。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません