c# - 如何使用 mediaplayer .c# 播放音频的字节数组
问题描述
我将音频文件上传到我的 sqlserver,我想从中检索并使用 mediaplayer 播放
错误是:无法将类型“字节 []”隐式转换为“字符串”测试
byte[] sound = null;
SqlCommand cmd = new SqlCommand("select music from music where ID=1", con);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
sound = (byte[])dr["music"];
}
axWindowsMediaPlayer1.URL = sound;
解决方案
假设您的音乐列是 (VARBINARY(MAX)) 类型,这里是一个工作代码:
using (var connection = new SqlConnection(conn))
{
connection.Open();
using (var cmd = new SqlCommand("select music from music where ID=1", connection))
{
using (SqlDataReader dr = cmd.ExecuteReader(System.Data.CommandBehavior.SequentialAccess))
{
if (dr.FieldCount > 0)
{
while (dr.Read())
{
var columnIndex = dr.GetOrdinal("music");
var stream = dr.GetSqlBinary(columnIndex);
var memStream = new MemoryStream(stream.Value);
var mediaPlayer = new MediaPlayer();
IRandomAccessStream randomAccessStream = memStream.AsRandomAccessStream();
mediaPlayer.Source = MediaSource.CreateFromStream(randomAccessStream, "audio/mpeg");
mediaPlayer.Play();
}
}
}
}
}