Медиаплеер Silverlight - PullRequest
       5

Медиаплеер Silverlight

1 голос
/ 11 июня 2009

Я использую VSTS 2008 с C # для разработки приложения Silverlight, встроенного в веб-страницу веб-приложения ASP.Net. Я встроил в XAML элемент MediaElement. Мой вопрос заключается в том, что я хочу встроить страницу в медиаплеер Silverlight, который позволит конечному пользователю вручную управлять элементом MediaElement для воспроизведения / паузы / остановки / перемотки назад / вперед. Есть ли образцы образцов?

спасибо заранее, George

EDIT1: добавить более точные требования,

На самом деле, я хочу управлять воспроизведением вручную, что означает, что я хочу обработать события воспроизведения / паузы / остановки / перемотки / перемотки плеера и добавить свой код для обработчиков событий, чтобы управлять MediaElement и делать что-то еще.

РЕДАКТИРОВАТЬ2: Мои потребности, я хочу воспроизвести два перекрывающихся видео. Экран как фоновое видео и камера как передний план видео (место в правом нижнем углу). Вот моя модификация кода, моя текущая проблема в том, что воспроизводится только фоновое видео, правое нижнее видео на переднем плане никогда не воспроизводится. У кого-нибудь есть идеи почему?

Кстати: мой модифицированный код и текущая работа основаны на http://www.codeplex.com/sl2videoplayer

http://www.yourfilehost.com/media.php?cat=other&file=sl2videoplayer_24325_new.zip

Вот краткое описание моего основного модифицированного кода,

mediaControls.xaml.cs

private MediaElement _media = null;
private MediaElement _camera = null;

public MediaElement Camera
{
    set
    {
        _camera = value;
    }
}

void btnPlay_Checked(object sender, RoutedEventArgs e)
{
    _camera.Play();            
    _media.Play();
    OnPlayClicked();
}

Page.xaml

    <MediaElement HorizontalAlignment="Stretch" Margin="0,0,0,0" x:Name="mediaPlayer" Stretch="Uniform" VerticalAlignment="Stretch" AutoPlay="false"/>
    <MediaElement Width="100" Height="100" x:Name="cameraPlayer" AutoPlay="false" HorizontalAlignment="Right" VerticalAlignment="Bottom"/>

Page.xaml.cs

cameraPlayer.Source = App.Current.Resources["c"] as Uri;

App.xaml.cs (функция Application_Startup)

        else if (item.Key.ToLower() == "c")
        {
            FormatUri(e.InitParams["c"].ToString(), "c", false);
        }

default.html

        <param name="initParams" value="cc=true,markers=true,markerpath=markers_movie21.xml,m=http://localhost/screen.wmv,c=http://localhost/camera.wmv" />

Ответы [ 3 ]

4 голосов
/ 11 июня 2009

О, детка, у меня есть медиаплеер для тебя: Sl2 Video Player . MSPL с открытым исходным кодом и удивительным.

Чтобы добавить возможность прагматично управлять игроком, добавьте ScriptableMembers. Вы увидите регистрационное заявление уже в коде:

    HtmlPage.RegisterScriptableObject("Page", page);

Теперь рассмотрим пример ScriptableMember:

[ScriptableMember]
public void SeekPlayback(string time)
{
    TimeSpan tsTime = TimeSpan.Parse(time);
    mediaControls.Seek(tsTime);
}

уже существует в коде. Добавьте больше методов, чтобы сделать то, что вы хотите, чтобы это произошло. Затем вы можете вызывать методы из управляемого кода в другом проигрывателе SL:

HtmlElement videoPlugin = HtmlPage.Document.GetElementById("VideoPlayer");
            if (videoPlugin != null)
            {
                ScriptObject mediaPlayer = (ScriptObject)((ScriptObject)videoPlugin.GetProperty("Content")).GetProperty("Page");

                mediaPlayer.Invoke("SeekPlayback", TimeSpan.FromSeconds(seconds).ToString());

            }

или из JavaScript:

        var sl = document.getElementById("VideoPlayer");
        var content = sl.Content.Page;
        content.SeekPlayback('55');
1 голос
/ 11 июня 2009

Если это два отдельных пакета xap, у них не будет возможности общаться, так как песочницы Silverlight обе по отдельности.

0 голосов
/ 25 сентября 2009

SL2videoplayer говорит, что поддерживает потоковое видео. Но когда я пытаюсь дать URL-адрес трансляции медиа-сервисов (OnDemand и Live) для инициализации параметра 'm', ничего не появляется. На странице примера init param также показан воспроизводимый удаленный файл wmv.

Также есть ли известные проблемы использования этого с SL 3?

...