Как программно создать 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
Ответить

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

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

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

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

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