Попытка воспроизвести видео на YouTube с помощью MediaPlayerLauncher - PullRequest
1 голос
/ 27 января 2012

Я кодирую приложение Windows Phone 7.1, и когда пользователь нажимает определенную кнопку, видео на YouTube будет воспроизводиться с помощью MediaPlayerLauncher.

Проблема в том, что MediaPlayerLauncher не может воспроизвести видео толькодать ему URL видео;Сама ссылка на видео находится в HTML страницы.Теперь мне удалось извлечь этот html, используя WebClient () для загрузки html и извлечь из него ссылку на видео, прикрепив это событие для 'client', моего WebClient:

        void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        pageHtml = e.Result;

        stringBuilder = new StringBuilder(pageHtml);
        if (pageHtml != null)
        {
            if (pageHtml.Contains("<html"))
            {
                if (pageHtml.Contains("<script"))
                {
                    stringBuilder.Replace("</script>", string.Format("{0}{1}</script>", NOTIFY_SCRIPT, Environment.NewLine));
                }
                else if (pageHtml.Contains("<head"))
                {
                    stringBuilder.Replace("</head>", string.Format("{0}{1}</head>", NOTIFY_SCRIPT, Environment.NewLine));
                }
                else
                {
                    stringBuilder.Replace("</html>", string.Format("{0}{1}</html>", NOTIFY_SCRIPT, Environment.NewLine));
                }
            }
            else
            {
                    //Just skip it or display an error message or whatever
            }

                rssBrowser.NavigateToString(stringBuilder.ToString());
        }
    }

По сути,Я добавляю скрипт NOTIFY_SCRIPT, который обнаруживает присутствие видео на YouTube (если вы хотите получить более подробную информацию об этом, ссылка на видео в основном в теге, поэтому я просто получаю все теги, найдите тот, на котором есть ссылка,и получить его содержимое (ссылка)).

Но, тем не менее, это просто не работает.Я попытался установить веб-браузер и заставить его перемещаться и запускать событие каждый раз, когда веб-браузер перемещается, чтобы убедиться, что он переходит на правильную страницу.Но иногда он не перемещается должным образом;он застревает на промежуточной странице или переходит на исходную страницу YouTube.Итак, я решил взглянуть на входящий HTML.По какой-то причине во входящем html отсутствует скрипт youtube.Я проверил скрипт на странице YouTube с помощью своего браузера (я зашел на мобильную веб-страницу и «проверил элемент»), и там есть скрипт, но когда WebClient получает html, скрипт отсутствует.

Так может в этом проблема?Кто-нибудь знает, как решить эту проблему, или, может быть, вы уже сделали что-то подобное по-другому?

Извините за длинный вопрос, и спасибо!

1 Ответ

2 голосов
/ 28 января 2012

Возможно, вам лучше использовать WebBrowserTask или API для получения URL.

...