2014-01-05 3 views
0

Я хочу спросить, есть ли способ получить mp3-тэги из музыки, воспроизводимой программным обеспечением Windows Phone 8, программным способом?Получить теги от воспроизведения музыки

Я попытался использовать экземпляр BackgroundAudioPlayer, MediaPlayer из рамок XNA, чтобы извлечь теги из песни, исполненной музыкальным плеером wp8, но кажется, что я не могу ее получить. я закончил с чем-то вроде этого:

var player = BackgroundAudioPlayer.Instance; 
if (player.PlayerState != PlayState.Playing) return; 
var track = player.Track; 
ArtistTextBlock.Text = track.Artist; 
SongTextBlock.Text = track.Title; 

Но это бросает NullReferenceException если я хочу Ассинг TextBlocks с художником или песенных строк имен.

+1

Возможно ли, что вы ищете что-то вроде этого: http://stackoverflow.com/questions/1750464/how-to-read-and-write-id3-tags-to-an-mp3-in-c –

+0

спасибо, но нет, это не то, что я ищу. Я хочу извлечь только исполнителя и имя песни из текущей песни. Я провел некоторое исследование, и я должен извлечь его из объекта Track. –

ответ

0

Если исключение NullReferenceException выбрано для назначения, вы должны попробовать выполнить отладку, чтобы узнать, действительна ли ваша переменная трека или действительно ли она равна нулю. Можно подумать, что player.Track должен быть player.NowPlaying или подобным, но я не очень хорошо знаю структуру WP8.

В дополнение к этому, если NullRef только время от времени бросается, вполне возможно, что при смене трека у игрока нет трека, поэтому он возвращает NULL и вызывает эту проблему. Убедитесь, что у игрока есть трек, и есть событие, связанное с самим проигрывателем для PlayStateChanged. Если вы захватили это событие, вы должны знать, что когда он «Играет», вы загружаете файл, а затем чтобы подтвердить, что у вас загружен трек.

Альтернатива, о которой я думал, это библиотека FileInfo с .NET, она может предоставить много информации о файлах, включая некоторые из тегов. Используя эту возможность, можно получить информацию.

Смежные вопросы