在媒体播放器中打开文件的特定部分

时间:2018-05-26 11:56:02

标签: c# winforms

我想在媒体播放器中播放二进制文件的特定部分 例如:
我知道从二进制文件中的位置200到60000,我有一个mp3数据 如何在不制作文件的情况下播放此部分。

1 个答案:

答案 0 :(得分:0)

要播放mp3文件,您可以使用WMPLib 例如:

var wmPlayer = new WMPLib.WindowsMediaPlayer();
wmPlayer.URL = "yourPath";
wmPlayer.Controls.Play();

如果你想播放一个文件的特定位置,你说它最好用FileStream类读取那个数量的文件并跳过一些字节使用Seek方法。使用Read(Byte[], Int32, Int32)方法读取特定数据量 例如:

using (var fs = new FileStream("yourPath", FileMode.Open))
{
    var data = new byte[60000 - 200];
    fs.Seek(200, SeekOrigin.Begin);
    fs.Read(data, 0, 60000 - 200);
}

然后使用Alvas.Audio从内存Stream和字节数组中播放:

using (var ms = new MemoryStream(data))
{
     Mp3Reader mr = new Mp3Reader(ms);
     PlayerEx plex = new PlayerEx();
     plex.OpenPlayer(mr.ReadFormat());
     plex.AddData(mr.ReadData());
     plex.StartPlay();            
}