Как программно создать TextViewView с помощью ExoPlayer в .NET/MAUI?C#

Место общения программистов C#
Anonymous
Как программно создать TextViewView с помощью ExoPlayer в .NET/MAUI?

Сообщение Anonymous »

Цель
Я пытаюсь создать ExoPlayer, используя код платформы Android в .NET (MAUI), который визуализируется в TextView (а не в SurfaceView по умолчанию).Справочная информация
В этой теме это обсуждается с точки зрения Android.
В .NET/MAUI у нас есть следующий конструктор что применимо к ExoPlayer:

Код: Выделить всё

public unsafe StyledPlayerView (global::Android.Content.Context? context, global::Android.Util.IAttributeSet? attrs)
Значит, вы можете запустить это как:

Код: Выделить всё

var PlayerView = new StyledPlayerView(androidContext, attributes);
//presuming you have a working 'attributes' file...
Второй аргумент атрибутов global::Android.Util.IAttributeSet? attrs — это место, где мы должны указать, что нам нужен TextView.
По ссылке выше мы должны передать XML-файл, который сначала преобразуется в IAttributeSet объект, чтобы указать TextView в качестве целевой поверхности.
Приведен пример XML: XML-файл такого типа должен быть преобразован в атрибут, необходимый для конструктора, следующим образом:

Код: Выделить всё

val xmlAttributes = context.resources.getXml(R.xml.player_view).let {
try {
it.next()
it.nextTag()
} catch (e: Exception) {
// do something, log, whatever
}
Xml.asAttributeSet(it)
}
Вопрос
Если я хочу полностью работать со сценарием C# и не хочу, чтобы XML-файлы загружались откуда угодно, а хочу просто объявить этот минимальный короткий фрагмент XML как строку или записать непосредственно в моем коде C#, могу ли я это сделать?
Если да, то как я могу это сделать? то есть. Что-то вроде:

Код: Выделить всё

string xmlSnippet = @""
Могу ли я затем передать это в код для создания атрибута? Т.е. Как версия C#:

Код: Выделить всё

val xmlAttributes = context.resources.getXml(xmlSnippet).let {
try {
it.next()
it.nextTag()
} catch (e: Exception) {
// do something, log, whatever
}
Xml.asAttributeSet(it)
}
Или, альтернативно, можем ли мы создать IAttributeSet для конструктора непосредственно на C#, даже не утруждаясь сначала созданием XML?
Мой Лучшая попытка
Моя лучшая попытка, показанная здесь, приводит к ошибке, которую я не понимаю, как указано.
Короче...
Может ли кто-нибудь предоставить рабочий образец чисто C#-кода, который может сделать атрибут необходимым для конструктора StyledPlayerView, чтобы разрешить создание Exoplayer на основе текстуры в .NET?
Спасибо за любую помощь.


Подробнее здесь: https://stackoverflow.com/questions/784 ... n-net-maui

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