我想在媒体播放器中播放二进制文件的特定部分
例如:
我知道从二进制文件中的位置200到60000,我有一个mp3数据
如何在不制作文件的情况下播放此部分。
答案 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();
}