Media Player в Visual Studio 2010, част 2, Иван Андреев - блог
Разработване на игри с помощта на XNA, MonoGame и Unity3D Blog
Използване на кода
Създаване на проект
Първо трябва да създадете нов проект.

Плейърът трябва да бъде поставен във всеки прозорец на източника в Visual Stidio, така че трябва да изберете проект на Editor Margin от менюто Extensibility. Кръстих проекта „InternetRadioPlayer“. Веднага след създаването на проекта в Solution Explorer можете да видите няколко файла, генерирани от Visual Studio.
Файловете от най-голям интерес за нас са InternetRadioPlayer.cs и InternetRadioPlayerFactory.cs. InternetRadioPlayerFactory.cs е фабрика, която създава нашия контрол за всяка страница с код в Visual Studio. Файлът съдържа следния код:
#region InternetRadioPlayer Factory
/// Експортиране на, което връща екземпляр на полето за редактора
[Order (After = PredefinedMarginNames.HorizontalScrollBar)] // Уверете се, че полето се намира под хоризонталната лента за превъртане
[MarginContainer (PredefinedMarginNames.Bottom)] // Задайте контейнера в долната част на прозореца на редактора
[ContentType („text“)] // Показване на това поле за всички текстови типове
вътрешен запечатан клас MarginFactory: IWpfTextViewMarginProvider
публичен IWpfTextViewMargin CreateMargin (IWpfTextViewHost textViewHost, IWpfTextViewMargin containerMargin)
върнете нов InternetRadioPlayer (textViewHost.TextView);
Няма да променя този файл, но ще поставя целия полезен код в InternetRadioPlayer.cs. Но първо трябва да създадем клас за играча (плейъра) и контрол за плейъра, който след това ще бъде поставен на страниците с кода.
Клас на играч
Класът на плейъра ще отговаря за възпроизвеждането на музика (можете да познаете по името). Той все още няма нищо общо с контролите.
Отначало се опитах да намеря добра библиотека за работа със звук, но не можах да намеря нищо просто и леко. В крайна сметка реших да използвам най-простото решение - използвам стандартния WPF контрол - MediaElement. Може да играе почти всичко (поне това, което Window Media Player може да играе, доколкото разбирам).