Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Воспроизведение видео в новых платформах Webkit

Воспроизведение видео в новых платформах Webkit
Я
   tixis
 
15.02.21 - 11:45
Как воспроизводить видео и отображать картинки в новых платформах, где используется webkit?
Пробовал для картинок использовать такой метод, но в обычных формах было HTML.УстановитьТекст(), в управляемых нет такого метода.
И код ниже способен только картинки вывести (если заработает) а как выводить видео?
        СтрокаНТМL="
        |<!DOCTYPE html>
        |<html>
        |<center>
        |";
        СтрокаНТМL=СтрокаНТМL+"
        |<img src=""data:image/jpeg;base64,
        |";
        СтрокаНТМL=СтрокаНТМL+Base64Строка(Новый ДвоичныеДанные(Стр));
        СтрокаНТМL=СтрокаНТМL+"
        |"" style=""max-width:100%; height:auto""; align-items:center; alt="""" />
        |</center>
        |</html>
        |";
 
 Партнерская программа EFSOL Oblako
   Kesim
 
1 - 15.02.21 - 12:41
(0) Лощадь не моя, но работает, замени по тексту:

ТипВ = "video/mp4";        КодекВ = "avc1.42E01E, mp4a.40.2";
        
    // <source src="_ПутьКВидео_" type="_ТипВидео_" codecs="_КодекВидео_">

    ТекстХТМЛ_Видео = СтрЗаменить(html_VIDEO, "_ПутьКВидео_", ПутьКФайлу);
    ТекстХТМЛ_Видео = СтрЗаменить(ТекстХТМЛ_Видео, "_ТипВидео_", ТипВ);
    ТекстХТМЛ_Видео = СтрЗаменить(ТекстХТМЛ_Видео, "_КодекВидео_", КодекВ);

///////////////////////////////////////////////////////////////////////////////////////////////


<html lang="en">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" charset="UTF-8">
    <style>
        * {
            margin: 0;
            padding: 0;
        }
    </style>
</head>
<body>
    <div id="divVideoPlayerBox">
        <video id="objPlayer" controls preload="none" muted>
            <source src="_ПутьКВидео_" type="_ТипВидео_" codecs="_КодекВидео_">
            file not found
        </video>
    </div>
<script>
    function playPause(strObjPlayer) {
        var objPlayer = document.getElementById(strObjPlayer);
        if (objPlayer.paused) {
            objPlayer.play();
        } else {
            objPlayer.pause();
        }
    }
    
    window.onload = function () {
        playPause('objPlayer');
    }
    
    objPlayer.onclick = function() {
        playPause('objPlayer');
    };
    
    objPlayer.onloadeddata = function() {
        var dblProportonScreen = document.body.clientWidth / document.body.clientHeight;
        //alert(dblProportonScreen);

        var dblProportonPlayer = this.videoWidth / this.videoHeight;
        //alert(dblProportonPlayer);


        if (dblProportonScreen <= dblProportonPlayer) {
            objPlayer.style.width = "100%";
            objPlayer.style.height = "auto";
        }
        else {
            objPlayer.style.width = "auto";
            objPlayer.style.height = "100%";
        }
    };
</script>
</body>
</html>
   tixis
 
2 - 15.02.21 - 12:44
спасибо, ща попробую
   Вафель
 
3 - 15.02.21 - 12:59
   tixis
 
4 - 15.02.21 - 14:06
(1) а как присвоить этот шаблон элементу ПолеHTMLДокумента, раньше был метод УстановитьТекст(ТекстHTM), а теперь как?
   Вафель
 
5 - 15.02.21 - 14:39
(4) имяпеременой = текст
   tixis
 
6 - 15.02.21 - 15:49
(5) да, так работает, а как обновлять поле? т.е. у меня воспроизводится один файл, потом текстHTML перефорируется, вставляется другой файл, но на форме ничего не меняется.

не обновляются ни картинки ни видео, хоть через оповещение, хоть напрямую в цикле устанавливаю

https://i.imgur.com/9FxZ7Il.png
   Александр111
 
7 - 15.02.21 - 15:55
перевод на русский из  (3) Привет, команда,

я пытаюсь запустить тег видео Html5 с помощью base64. он работает нормально. Но у меня файлы большие вроде 100мб. Итак, я разделил на куски размером 10 МБ.

Теперь я хочу воспроизвести первый фрагмент, и пока он воспроизводится, я хочу добавить второй фрагмент, например, до 10 фрагментов, которые нужно добавить. Является ли это возможным?
Ответить
Администратор, 4 июля 2019 в 18:09 # ↑
Привет!
Если вы уверены, что это единственный способ достичь своей цели, я думаю, вы ищете MediaSource.addSourceBuffer () или
SourceBuffer.appendBuffer ().

Однако я рекомендую вам пересмотреть это решение, по крайней мере, потому, что может быть плохой идеей встраивать 10 МБ потенциально неиспользуемых данных в HTML-страницу.
   tixis
 
8 - 15.02.21 - 16:03
не понятно. мне не нужно дополнять что то , мне нужно как то обновить поле, чтобы на форме отображался новый html текст с новыми файлами
   Александр111
 
9 - 15.02.21 - 16:05
первое видео должно полностью проиграть?
   Александр111
 
10 - 15.02.21 - 16:05
если да, то нужно формировать очередь
   tixis
 
11 - 15.02.21 - 16:10
смысл такой, что должна крутится реклама, файлы могут быть как картинки, так и видео.
Что такое SourceBuffer.appendBuffer() как это применимо в 1с?
   Александр111
 
12 - 15.02.21 - 16:15
var assetURL = 'frag_bunny.mp4';
// Need to be specific for Blink regarding codecs

// ./mp4info frag_bunny.mp4 | grep Codec
var mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';

if ('MediaSource' in window && MediaSource.isTypeSupported(mimeCodec)) {
  var mediaSource = new MediaSource;
  //console.log(mediaSource.readyState); // closed

  video.src = URL.createObjectURL(mediaSource);
  mediaSource.addEventListener('sourceopen', sourceOpen);
} else {
  console.error('Unsupported MIME type or codec: ', mimeCodec);
}

function sourceOpen (_) {
  //console.log(this.readyState); // open

  var mediaSource = this;
  var sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
  fetchAB(assetURL, function (buf) {
    sourceBuffer.addEventListener('updateend', function (_) {
      mediaSource.endOfStream();
      video.play();
      //console.log(mediaSource.readyState); // ended

    });
    sourceBuffer.appendBuffer(buf);
  });
};
   Александр111
 
13 - 15.02.21 - 16:17

Список тем форума
 
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.