Использование AVSynchronizedLayer на avplayer в Swift 4

Ответ Уайти имеет хорошую информацию, но это не правильный ответ на этот вопрос.

Поведение, описанное OP, является частью ошибки, о которой впервые сообщалось в марте 2010, исправленный для Webkit в августе 2012 года, но на момент написания этой статьи он еще не интегрирован в Google Chrome. Поведение зависит от того, открыто или закрыто окно консоли в момент, когда литерал объекта передается в console.log().

Выдержки из исходного отчета об ошибке ( https: // bugs .webkit.org / show_bug.cgi? id = 35801 ):

Описание От mitch kramer 2010-03-05 11:37:45 PST

1) создать объектный литерал с одним или несколькими свойствами

2) console.log этот объект, но оставить его закрытым (не расширять его в консоли)

3) изменить один свойств к новому значению

теперь открывается, что console.log, и вы увидите, что по какой-то причине оно имеет новое значение, даже несмотря на то, что в момент его создания значение было другим.

Я должен указать, что если вы его откроете, он сохранит правильное значение, если это было неясно.

blockquote>

Ответ от разработчика Chromium:

Комментарий # 2 От Pavel Feldman 2010-03-09 06:33:36 PST

Не думаю, что мы когда-нибудь это исправим. Мы не можем клонировать объект при его сбросе в консоль, и мы также не можем слушать изменения свойств объекта, чтобы сделать его всегда актуальным.

Мы должны убедиться, что существующее поведение ожидается.

blockquote>

Многое жалобы последовало, и в конечном итоге это привело к исправлению ошибки.

Заметки о внесении изменений из патча, реализованного в августе 2012 года ( http: //trac.webkit .org / changeset / 125174 ):

На сегодняшний день сброс объекта (массива) в консоль приведет к тому, что свойства объекта будут прочитаны при расширении объекта консоли (т.е. лениво) , Это означает, что сброс одного и того же объекта при его изменении будет трудно отлаживать с помощью консоли.

Это изменение начинает генерировать сокращенные предварительные просмотры для объектов / массивов в момент их регистрации и передает эту информацию вперед -конец. Это происходит только тогда, когда front-end уже открыт, он работает только для console.log (), а не для взаимодействия с консолью.

blockquote>

0
задан user10856322 5 March 2019 в 04:57
поделиться