.NET MAUI, можно ли привязать атрибут «Источник» MediaElement?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 .NET MAUI, можно ли привязать атрибут «Источник» MediaElement?

Сообщение Гость »


Я пытаюсь не жестко закодировать значение атрибута Source для MediaElement с помощью XAML (в отличие от C#).< /п> У меня есть этот код:

Я думаю, что атрибут Source не является «привязываемым» или что-то в этом роде (извините, я здесь новичок). Но если его нельзя привязать, что тогда делать разработчикам?

Если ответ есть в документации, то я не могу его найти.

РЕДАКТИРОВАТЬ: конечно, это сложнее, чем текст выше...

На самом деле я передаю имя файла на страницу, на которой отображаются медиафайлы с другой страницы. Видите, пользователь выбирает видео для просмотра, я беру объект Video и передаю video.filename на новую страницу, на которой будет отображаться видео.

Моя первоначальная идея заключалась в следующем. Сначала передайте имя видеофайла со страницы, где пользователь выбирает видео:

[RelayCommand] частная асинхронная задача NavigateToPlayMediaPage (видео-видео) { строка str = "embed://" + video.VideoFilename; // "ThrowSource" — это строковый реквизит await Shell.Current.GoToAsync($"//{nameof(PlayMediaPage)} ThrowSource={str}"); } Мы улавливаем строку на странице, где отображаем медиа, и делаем это в Xaml:

Конечно, оказывается, что Source принимает объект типа MediaSource.

ОК. Итак, что я мог бы сделать, так это создать объект MediaSource из строки переданного имени файла. Я мог бы создать метод «Появление» (который выполняется перед Xaml). В этом методе «Появление» я мог бы создать MediaSource:

с использованием CommunityToolkit.Maui.Views; пространство имен ems_mobile.ViewModel; [QueryProperty("CatchSource","ThrowSource")] общедоступный частичный класс PlayMediaPageViewModel: ObservableObject { [Обсерваблесвойство] строка catchSource; [Команда Реле] Появление частной асинхронной задачи() { вар mediaSource = MediaSource.FromResource(CatchSource); } } И тогда я мог бы использовать этот объект MediaSource в Xaml:

Увы, это не работает. У меня просто белый экран. Нет игрока. Нет ошибки. Проблема в том, что в методе «Появление» у меня фактически нет доступа к переданной строке. Я думаю, что методы «Появления» не получают передаваемые строки или что-то в этом роде.

============================================ =======================

РЕДАКТИРОВАТЬ: Получаем странное исключение. Если я смогу это понять, у меня все будет хорошо.

Я передаю объект Media Source со страницы SelectMedia на ViewMediaPage. Он передается правильно с правильными значениями.

Вот он, наслаждающийся методом, в котором он передается:
Изображение


А вот он, на другой стороне, нахальный ублюдок, ценности нетронуты:
Изображение


Вот xaml — мне он кажется хорошим:
Изображение


Единственная проблема... когда я захожу в ViewMediaPage, происходит следующее:
Изображение

Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»