Имя: Пароль:
1C
1С v8
Воспроизведение видео в новых платформах Webkit
0 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>
        |";
1 Kesim
 
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>
2 tixis
 
15.02.21
12:44
спасибо, ща попробую
3 Вафель
 
15.02.21
12:59
можно и инлайн
https://base64.guru/developers/html/video
4 tixis
 
15.02.21
14:06
(1) а как присвоить этот шаблон элементу ПолеHTMLДокумента, раньше был метод УстановитьТекст(ТекстHTM), а теперь как?
5 Вафель
 
15.02.21
14:39
(4) имяпеременой = текст
6 tixis
 
15.02.21
15:49
(5) да, так работает, а как обновлять поле? т.е. у меня воспроизводится один файл, потом текстHTML перефорируется, вставляется другой файл, но на форме ничего не меняется.

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

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

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

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

Однако я рекомендую вам пересмотреть это решение, по крайней мере, потому, что может быть плохой идеей встраивать 10 МБ потенциально неиспользуемых данных в HTML-страницу.
8 tixis
 
15.02.21
16:03
не понятно. мне не нужно дополнять что то , мне нужно как то обновить поле, чтобы на форме отображался новый html текст с новыми файлами
9 Александр111
 
15.02.21
16:05
первое видео должно полностью проиграть?
10 Александр111
 
15.02.21
16:05
если да, то нужно формировать очередь
11 tixis
 
15.02.21
16:10
смысл такой, что должна крутится реклама, файлы могут быть как картинки, так и видео.
Что такое SourceBuffer.appendBuffer() как это применимо в 1с?
12 Александр111
 
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);
  });
};
13 Александр111
 
15.02.21
16:17
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс