分類:[.NET 全般]
2021/12/17(Fri) 22:38:55 編集(投稿者)
こんばんは
ご質問させて申し訳ございません。
リストはListView1を使用しています。
BASS.NET.DLL
http://bass.radio42.com/
こちらのライブラリを使いました。
Imports Un4seen.Bass
Public Class Form1
Dim Stream As Integer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Bass.net.dll(参照に追加)
Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero)
End Sub
'リスト再生
Private Sub PlayButton_Click(sender As Object, e As EventArgs) Handles PlayButton.Click
Select Case Bass.BASS_ChannelIsActive(Stream)
Case BASSActive.BASS_ACTIVE_PAUSED
Bass.BASS_ChannelPlay(Stream, False)
Timer4.Start()
Case BASSActive.BASS_ACTIVE_STOPPED
If ListView1.SelectedIndices.Count > 0 Then
Bass.BASS_ChannelStop(Stream)
Bass.BASS_StreamFree(Stream)
Stream = Bass.BASS_StreamCreateFile(ListView1.Items(ListView1.SelectedIndices(0)).Text, 0, 0, BASSFlag.BASS_DEFAULT)
Bass.BASS_ChannelPlay(Stream, False)
BassLabel.Text = "(" & DurationString(Stream) & ")" & System.IO.Path.GetFileNameWithoutExtension(ListView1.Items(ListView1.SelectedIndices(0)).Text)
TrackBar2.Maximum = CInt(Bass.BASS_ChannelBytes2Seconds(Stream, Bass.BASS_ChannelGetLength(Stream)))
' SetVolume(Stream)
'VisualX(PictureBox1)
Timer4.Start()
End If
Case BASSActive.BASS_ACTIVE_PLAYING
If ListView1.SelectedIndices.Count > 0 Then
Bass.BASS_ChannelStop(Stream)
Bass.BASS_StreamFree(Stream)
Stream = Bass.BASS_StreamCreateFile(ListView1.Items(ListView1.SelectedIndices(0)).Text, 0, 0, BASSFlag.BASS_DEFAULT)
Bass.BASS_ChannelPlay(Stream, False)
BassLabel.Text = "(" & DurationString(Stream) & ")" & System.IO.Path.GetFileNameWithoutExtension(ListView1.Items(ListView1.SelectedIndices(0)).Text)
TrackBar2.Maximum = CInt(Bass.BASS_ChannelBytes2Seconds(Stream, Bass.BASS_ChannelGetLength(Stream)))
'SetVolume(Stream)
'VisualX(PictureBox1)
Timer4.Start()
End If
End Select
End Sub
Private Sub AddFileButton_Click(sender As Object, e As EventArgs) Handles AddFileButton.Click
'Add FileNames
'フルパスではなく、ファイル名として表示
dim FilePath as String'2,
Dim k As New OpenFileDialog
k.Filter = "MP3 File|*.MP3"
k.Multiselect = True
If k.ShowDialog = DialogResult.OK Then
For Each File As String In k.FileNames'フルパスで表示されます。
ListView1.Items.Add(File)
Next
’For Each Files As String In k.FileNames'ファイル名でリストに表示されます。
' FilePath = IO.Path.GetFileName(Files)
'ListView1.Items.Add(FilePath)
Next
ListView1.Items(0).Selected = True
ListView1.Select()
PlayButton.PerformClick()
End If
End Sub
Private Sub Timer4_Tick(sender As Object, e As EventArgs) Handles Timer4.Tick
TimPanel.Text = currentPopstring(Stream)'曲の再生時間
TrackBar2.Value = CInt(Bass.BASS_ChannelBytes2Seconds(Stream, Bass.BASS_ChannelGetPosition(Stream)))
If TrackBar2.Value = TrackBar2.Maximum Then
Bass.BASS_ChannelPlay(Stream, False)
End If
Private Sub TrackBar2_Scroll(sender As Object, e As EventArgs) Handles TrackBar2.Scroll
Bass.BASS_ChannelSetPosition(Stream, Bass.BASS_ChannelSeconds2Bytes(Stream, CInt(TrackBar2.Value)))
End Sub
1,
For Each File As String In k.FileNames'フルパスで表示されます。
ListView1.Items.Add(File)
Next
でフルパスになっていると思われます。
2,で問題が発生します。
ファイル名でリストは表示されましたが、時間と曲の長さが0:01で止まったままになってしまい
そして、曲も再生しません。(トラックバー2も含む)
「解決したい事」
ファイル名として曲を再生したいのですが、どのように改変したらよろしいでしょうか?
コード長くなってしまい申し訳ございませんがよろしくお願いいたします。
環境Vistual Studio 2022 VB.NET Frameworck4.7.2です。
BASS.NET.DLL参照追加
ビルドしたdebugフォルダの中にBASS.DLLとBASS.NET.DLLを入れました
参考
http://bass.radio42.com/
http://www.un4seen.com/