Открыть определенную часть файла в медиаплеере - PullRequest
0 голосов
/ 26 мая 2018

Я хочу воспроизвести определенную часть двоичного файла в медиаплеере.например:Я знаю с позиции от 200 до 60000 в двоичном файле, у меня есть данные mp3.Как я могу сыграть эту часть, не создавая файл из этого.

1 Ответ

0 голосов
/ 26 мая 2018

Для воспроизведения 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 для воспроизведения из памяти потока и байтового массива:

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();            
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...