как воспроизводить музыку с SQL Server с помощью VB.net

#vb.net

#vb.net

Вопрос:

В настоящее время я работаю над проектом, который представляет собой музыкальный проигрыватель, но я пытаюсь заставить его работать с SQL Server.

Я загрузил свою музыку на SQL Server с помощью запросов, однако проблема заключается в их получении. Тип файла — varbinary (MAX). Я попытался пойти альтернативным путем, где я извлекаю двоичный файл в текстовом файле, а затем конвертирую расширение файла в .wav и воспроизводю его через медиаплеер, пока локальный файл является временным.

 Private Sub Online_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    Try
        Using cn As SqlConnection = New SqlConnection("Server= DESKTOP-8KB6RLJ; Database= TESTdb; Integrated security = true ")
            cn.Open()
            Using cmd As SqlCommand = New SqlCommand()
                cmd.Connection = cn
                Dim qry As String
                qry = String.Format("SELECT FileStreamCol From MUSIC")
                cmd.CommandText = qry
                cmd.CommandTimeout = 0
                Dim oFileStream As System.IO.FileStream
                oFileStream = New System.IO.FileStream("C:3N3RGYbytes.mp3", System.IO.FileMode.OpenOrCreate)
                Using myReader As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
                    While (myReader.Read())
                        Dim data As Byte() = myReader(0)
                        oFileStream.Write(data, 0, data.Length)
                    End While
                    oFileStream.Close()
                    Dim myFiles As String()

                    myFiles = IO.Directory.GetFiles("C:3N3RGY", "*.txt")

                    Dim newFilePath As String

                    For Each filepath As String In myFiles

                        newFilePath = filepath.Replace(".txt", ".mp3")

                        System.IO.File.Move(filepath, newFilePath)
                        AxWindowsMediaPlayer1.URL = ListBox1.SelectedItem

                    Next
                End Using
            End Using
        End Using


    Catch ex As Exception

    End Try
End Sub
  

Комментарии:

1. Получаем Byte массив и вызываем File.WriteAllBytes . Если сохраненные вами данные действительны, файл будет действительным.

2. Вы записываете FileStream в один While цикл. Если существует несколько Byte массивов, то, безусловно, вы должны сохранять каждый из них в отдельный файл. Если есть только один, почему цикл?

3. как бы вы выполнили оператор while? и просто чтобы сообщить вам, я выполнил одно преобразование, вручную изменив binary.txt файл, который был записан на мой компьютер как wav-файл и попытался воспроизвести его с помощью встроенного wmp. это не сработало. есть предложения?