Продолжаю борьбу с компонентом VideoPlayer, но уже постепенно сдаюсь, прошу помощи, так как, видимо, не хватает знаний в UnityEditor и C#.
Проблема вот в чем: VideoPlayer проигрывает файлы с компьютера, но когда запускаю приложение на телефоне просто черный экран. Все это происходит, потому что Unity использует встроенный транскодер (или кодек, не знаю как правильно), а на девайсе Андроид - Transcode по дефолту отключен.
Если вставлять в VideoPlayer файл напрямую из проекта, то проблемы нет. Так как видеофайлу можно настроить Trancode для Андроид, да и вообще для любой платформы, и тогда видео сразу подготавливается для Андроид и при заливке кодируется в нужный формат.
Но как включить Transcode для видеофайла, которого еще нет в проекте??
Вот код:
Синтаксис:
Используется csharp
...
public GameObject player;
VideoPlayer videoplayer1;
//Для настройки Транскодинга
VideoClipImporter Importer = new VideoClipImporter();
VideoImporterTargetSettings ImporterTargetSettings = new VideoImporterTargetSettings();
VideoCodec codec = new VideoCodec();
private void Awake()
{
videoplayer1 = GetComponent<VideoPlayer>(); //Принимаем компонент Видеоплеер
//videoplayer1.url = "/storage/B094-758D/Video/Mir_YP.avi"; //это для файла на Андроид
videoplayer1.url = "D:/Films/Mir_YP.avi"; //это для файла на компе
videoplayer1.Play();
}
public GameObject player;
VideoPlayer videoplayer1;
//Для настройки Транскодинга
VideoClipImporter Importer = new VideoClipImporter();
VideoImporterTargetSettings ImporterTargetSettings = new VideoImporterTargetSettings();
VideoCodec codec = new VideoCodec();
private void Awake()
{
videoplayer1 = GetComponent<VideoPlayer>(); //Принимаем компонент Видеоплеер
//videoplayer1.url = "/storage/B094-758D/Video/Mir_YP.avi"; //это для файла на Андроид
videoplayer1.url = "D:/Films/Mir_YP.avi"; //это для файла на компе
videoplayer1.Play();
}
В разделе "Для настройки Транскодинга" привел три класса которые работают с настройкой Transcode.
А конкретнее есть такие свойсва:
VideoImporterTargetSetting.enabledTranscoding = true,
VideoClipImporter.SetTargetSetting(str platfrom, VideoImporterTargetSetting),
а доступ к проигрываемому файлу получаем через VideoPlayer.clip.
Но как прикрепить VideoClipImporter к VideoPlayer.clip ???
P.S.
https://docs.unity3d.com/ScriptReference/VideoClipImporter.html
https://docs.unity3d.com/ScriptReference/VideoImporterTargetSettings.html