Я пытаюсь создать 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...
По ссылке выше мы должны передать XML-файл, который сначала преобразуется в IAttributeSet объект, чтобы указать TextView в качестве целевой поверхности.
Приведен пример 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 = @""
Код: Выделить всё
val xmlAttributes = context.resources.getXml(xmlSnippet).let {
try {
it.next()
it.nextTag()
} catch (e: Exception) {
// do something, log, whatever
}
Xml.asAttributeSet(it)
}
Мой Лучшая попытка
Моя лучшая попытка, показанная здесь, приводит к ошибке, которую я не понимаю, как указано.
Короче...
Может ли кто-нибудь предоставить рабочий образец чисто C#-кода, который может сделать атрибут необходимым для конструктора StyledPlayerView, чтобы разрешить создание Exoplayer на основе текстуры в .NET?
Спасибо за любую помощь.
Подробнее здесь: https://stackoverflow.com/questions/784 ... n-net-maui
Мобильная версия