Запись в MemoryStream из ConnectStream асинхронно - PullRequest
1 голос
/ 11 декабря 2011

Я пишу mp3-плеер, который транслирует песни из Интернета. Проблема в том, что я не могу использовать метод Seek () в ConnectStream. Я подумал, что, возможно, можно скопировать ConnectStream в MemoryStream асинхронно во время потоковой передачи и использовать метод MemoryStream Seek (). У кого-нибудь есть идеи, возможно ли это? Или может кто-то знает другой способ, как это сделать? Спасибо.

Ответы [ 2 ]

2 голосов
/ 11 декабря 2011

Если вы хотите, чтобы пользователь мог перебирать песню вперед и назад, вы, вероятно, на правильном пути. Выделите MemoryStream и используйте метод CopyTo (при условии, что вы используете .NET 4) следующим образом:

var ms = new MemoryStream();
myConnectStream.CopyTo(ms);

Если вы хотите загружать и искать одновременно (например, видео на YouTube), вам нужно использовать несколько более сложные приемы. Вместо того, чтобы описывать их подробно, я просто отошлю вас к источнику:

http://msdn.microsoft.com/en-us/magazine/cc337900.aspx

0 голосов
/ 11 декабря 2011

Да, это возможно с System.IO.MemoryStream . Затем вы буферизуете часть потока в локальной памяти. Попробуйте использовать System.IO.BufferedStream

...