2016-06-06 2 views
0

Я пытаюсь добавить плейлист в BackgroundMediaPlayer, как это. Так это выглядит следующим образом:Невозможно наложить объект типа Mediaplayer на тип IMediaPlayerSource2

try 
{ 
    Progr.IsActive = true; 
    ErrorMessage.Visibility = Visibility.Collapsed; 

    //This fills the ObservableCollection timeLine with Tracks 
    await UserAuthed.PopulateTimelineTracksAsync(timeLine); 

    //This should create the Playlist 
    CreatePlaylist(timeLine); 

    Progr.IsActive = false; 
} 

catch (Exception ex) 
{ 
    Progr.IsActive = false; 
    ErrorMessage.Visibility = Visibility.Visible; 
} 


private void CreatePlaylist(ObservableCollection<Collection> TrackCollection) 
{ 
    foreach (var item in TrackCollection) 
    { 
     MediaSource ms = MediaSource.CreateFromUri(new Uri(item.origin.uri)); 
     ms.CustomProperties.Add("Title", item.origin.title); 
     ms.CustomProperties.Add("Artist", item.origin.user.username); 
     MPL.Items.Add(new MediaPlaybackItem(ms)); 
    } 

    BackgroundMediaPlayer.Current.Source = MPL; 
} 

Но BackgroundMediaPlayer.Current.Source = MPL; он терпит неудачу с {"Unable to cast object of type 'Windows.Media.Playback.MediaPlayer' to type 'Windows.Media.Playback.IMediaPlayerSource2'."}

Что это исключение смысл? Как я могу это исправить?

Редактировать: MPL - это MediaPlaybackList.

+1

Сбой во время компиляции или время выполнения? Каков тип 'MPL'? –

+0

'MPL' может быть' MediaPlaybackList'. Это так? – Saadi

+0

Да, извините, MPL - MediaPlaybackList – Flauschcoder

ответ

0

Пожалуйста, обновите ваш код, с этим:

private void CreatePlaylist(ObservableCollection<Collection> TrackCollection) 
{ 
    // Make a new list 
    MPL = new MediaPlaybackList(); 
    foreach (var item in TrackCollection) 
    { 
     MediaSource ms = MediaSource.CreateFromUri(new Uri(item.origin.uri)); 
     ms.CustomProperties.Add("Title", item.origin.title); 
     ms.CustomProperties.Add("Artist", item.origin.user.username); 
     MPL.Items.Add(new MediaPlaybackItem(ms)); 
    } 

    BackgroundMediaPlayer.Current.Source = MPL; 
} 

Вот полный GitHub link для справки. В конце вы можете найти функцию CreatePlaybackList.

Спасибо!

+0

Я пробовал, но он все еще не работает:/ – Flauschcoder

+0

Может быть проблема в 'item.origin.uri'. Вы хорошо связываетесь? Доступен ли uri? Вы добавили разрешения? – Saadi

+0

Теперь, когда вы это говорите, это может быть проблемой. Я работаю с Soundcloud-API, и API не передает ссылку http: //xxxxxxxxx.mp3 как Stream-Link. Возможно, это проблема. – Flauschcoder