СПОСОБ ВОСПРОИЗВЕДЕНИЯ НЕСКОЛЬКИХ ВИДЕО, НОСИТЕЛЬ ДАННЫХ И КОМПЬЮТЕРНОЕ УСТРОЙСТВО
METHOD FOR PLAYING MULTIPLE VIDEOS, DATA STORAGE, AND COMPUTER APPARATUS

[0001] Данная заявка является Международной заявкой PCT/CN2019/113600, поданной 28 октября 2019, которая притязает на приоритет заявки на патент КНР 201811497837.6, поданной 7 декабря 2018 и имеющей название "СПОСОБ ВОСПРОИЗВЕДЕНИЯ НЕСКОЛЬКИХ ВИДЕО, НОСИТЕЛЬ ДАННЫХ И КОМПЬЮТЕРНОЕ УСТРОЙСТВО", содержание которых полностью приведено здесь в качестве ссылки.
ОБЛАСТЬ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] Настоящее изобретение относится к области технологий обработки видеоданных, в частности к способу воспроизведения нескольких видео, носителю данных и компьютерному устройству.
ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ
[0003] Когда оператор загружает видео в приложение для коротких видео (приложение), необходимо отредактировать видео, чтобы сделать сюжет, описанный в видео, более богатым и более ярким или интересным. Предварительный просмотр нескольких отредактированных видео требует плавного воспроизведения нескольких видео.
КРАТКОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0004] В соответствии с вариантами осуществления настоящего изобретения предусмотрен способ воспроизведения нескольких видео, носитель данных и компьютерное устройство для решения проблем, связанных с плохой гибкостью и плохой расширяемостью при воспроизведении нескольких видео. Технические решения описаны ниже.
[0005] В соответствии с одним аспектом предусмотрен способ воспроизведения нескольких видео. Данный способ включает: создание скользящего окна с предварительно определенной длиной в соответствии с первым предназначенным для воспроизведения видео из нескольких видео, при этом скользящее окно включает первое предназначенное для воспроизведения видео и предварительно установленное количество вторых предназначенных для воспроизведения видео, отличных от первого предназначенного для воспроизведения видео; предварительную загрузку данных каждого видео в скользящем окне каждым видеопроигрывателем; предварительную загрузку первого предназначенного для воспроизведения видео одним из видеопроигрывателей и воспроизведение первого предназначенного для воспроизведения видео в качестве текущего воспроизводимого видео, при этом вторые предназначенные для воспроизведения видео, отличные от первого предназначенного для воспроизведения видео в скользящем окне, предварительно загружаются другими видеопроигрывателями; и воспроизведение одного из вторых предназначенных для воспроизведения видео путем вызова интерфейса видеопроигрывателя, соответствующего второму предназначенному для воспроизведения видео в скользящем окне, в ответ на переключение текущего воспроизводимого видео на второе предназначенное для воспроизведения видео, при этом скользящее окно движется одновременно с воспроизведением текущего воспроизводимого видео для расположения следующего видео в скользящем окне и предварительной загрузки следующего видео в качестве нового второго предназначенного для воспроизведения видео.
[0006] В некоторых вариантах осуществления перед предварительной загрузкой данных каждого видео в скользящем окне каждым указанным видеопроигрывателем способ дополнительно включает: получение предварительно установленного количества видеопроигрывателей в соответствии с количеством видео в скользящем окне; и конфигурирование пула проигрывателей в соответствии с предварительно установленным количеством видеопроигрывателей; при этом предварительная загрузка данных каждого видео в скользящем окне каждым указанным видеопроигрывателем включает: получение видеопроигрывателей из пула проигрывателей и предварительную загрузку данных каждого видео в скользящем окне каждым указанным видеопроигрывателем.
[0007] В некоторых вариантах осуществления при воспроизведении первого предназначенного для воспроизведения видео в качестве текущего воспроизводимого видео способ дополнительно включает: управление скользящим окном для движения одновременно с воспроизведением текущего воспроизводимого видео; и в ответ на выход текущего воспроизводимого видео за пределы скользящего окна - высвобождение видеопроигрывателя, связанного с вышедшим за пределы видео, и добавление видеопроигрывателя, связанного с вышедшим за пределы видео, в пул проигрывателей.
[0008] В некоторых вариантах осуществления при управлении скользящим окном для движения одновременно с воспроизведением текущего воспроизводимого видео способ дополнительно включает: предварительную загрузку третьего предназначенного для воспроизведения видео в подвергнутом движению скользящем окне указанным видеопроигрывателем.
[0009] В некоторых вариантах осуществления предварительная загрузка третьего предназначенного для воспроизведения видео в подвергнутом движению скользящем окне видеопроигрывателем включает: предварительную загрузку третьего предназначенного для воспроизведения видео в намеченное место видеопроигрывателем.
[0010] В некоторых вариантах осуществления скользящее окно включает текущее воспроизводимое видео, воспроизведенное видео и невоспроизведенное видео; при этом воспроизведение одного из вторых предназначенных для воспроизведения видео путем вызова интерфейса видеопроигрывателя, соответствующего второму предназначенному для воспроизведения видео в скользящем окне, в ответ на переключение текущего воспроизводимого видео на второе предназначенное для воспроизведения видео включает: воспроизведение воспроизведенного видео в качестве второго предназначенного для воспроизведения видео путем вызова интерфейса видеопроигрывателя, соответствующего воспроизведенному видео, в ответ на операцию запуска в виде переключения на воспроизведение воспроизведенного видео; и воспроизведение невоспроизведенного видео в качестве второго предназначенного для воспроизведения видео путем вызова интерфейса видеопроигрывателя, соответствующего невоспроизведенному видео, в ответ на операцию запуска в виде переключения на воспроизведение невоспроизведенного видео.
[0011] В некоторых вариантах осуществления вызов интерфейса видеопроигрывателя, соответствующего второму предназначенному для воспроизведения видео в скользящем окне, в ответ на переключение текущего воспроизводимого видео на второе предназначенное для воспроизведения видео включает: вызов интерфейса видеопроигрывателя, соответствующего второму предназначенному для воспроизведения видео в скользящем окне, и переключение экрана видеопроигрывателя, соответствующего второму предназначенному для воспроизведения видео, для отображения в ответ на переключение текущего воспроизводимого видео на второе предназначенное для воспроизведения видео.
[0012] В некоторых вариантах осуществления при воспроизведении первого предназначенного для воспроизведения видео в качестве текущего воспроизводимого видео способ дополнительно включает: модифицирование скользящего окна в соответствии с воспроизведением текущего воспроизводимого видео; или модифицирование скользящего окна в ответ на получение операции перетаскивания для воспроизведения (drag-to-play) или операции запуска пропуска с помощью индикатора выполнения воспроизведения.
[0013] В соответствии с другим аспектом предусмотрен носитель данных, на котором хранится компьютерная программа. Компьютерная программа при выполнении процессором побуждает процессор реализовывать способ воспроизведения нескольких видео, как определено в рамках любого из описанных выше вариантов осуществления.
[0014] В соответствии с другим аспектом предусмотрено компьютерное устройство. Компьютерное устройство включает, по меньшей мере, один процессор, память и, по меньшей мере, одно приложение. Указанное, по меньшей мере, одно приложение хранится в памяти, при этом указанное, по меньшей мере, одно приложение при выполнении, по меньшей мере, указанным одним процессором побуждает указанный, по меньшей мере, один процессор реализовывать способ воспроизведения нескольких видео, как определено в рамках любого из описанных выше вариантов осуществления.
ОПИСАНИЕ ФИГУР
[0015] Для более ясного описания технических решений в рамках вариантов осуществления настоящего изобретения ниже кратко описаны прилагаемые фигуры, необходимые для описания вариантов осуществления. Как видно, на прилагаемых фигурах в рамках нижеследующего описания показаны лишь некоторые варианты осуществления настоящего изобретения, при этом средний специалист в данной области все еще будет способен составить другие фигуры на основе данных прилагаемых фигур без приложения творческих усилий.
[0016] Фиг. 1 представляет собой блок-схему, на которой показан способ воспроизведения нескольких видео в соответствии с примером варианта осуществления настоящего изобретения;
[0017] Фиг. 2 представляет собой блок-схему, на которой показан другой способ воспроизведения нескольких видео в соответствии с примером варианта осуществления настоящего изобретения;
[0018] Фиг. З представляет собой блок-схему, на которой показан еще один способ воспроизведения нескольких видео в соответствии с примером варианта осуществления настоящего изобретения;
[0019] Фиг. 4 представляет собой схематическую структурную диаграмму скользящего окна в соответствии с примером варианта осуществления настоящего изобретения;
[0020] Фиг. 5 представляет собой блоку-схему, на которой показано управление воспроизведением в соответствии с примером варианта осуществления настоящего изобретения; и
[0021] Фиг. 6 представляет собой схематическую структурную диаграмму компьютерного устройства в соответствии с примером варианта осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0022] Для более ясного описания целей, технических решений и преимуществ настоящего изобретения далее подробно описаны варианты осуществления настоящего изобретения со ссылкой на прилагаемые фигуры.
[0023] Плавное воспроизведение: одно видео согласованным образом переключается при условии отсутствия реакции пользователя на следующее видео в рамках крайне короткого периода времени.
[0024] Редактирование видео: исходные видео режутся и объединяются для получения новых видео с другой выразительностью с помощью вторичного кодирования.
[0025] В рамках традиционных технических решений существует два стандартных решения для плавного воспроизведения нескольких видео, представленных на платформе iOS.
[0026] (1) Одно решение реализовано с помощью AVQueuePlayer, то есть несколько видео воспроизводятся непрерывно с помощью -[AVQueuePlayer initWithltems:] или+[AVQueuePlayer queuePlayerWithltems:]. Однако очевидным недостатком данного решения является то, что при воспроизведении каждого сегмента видео появляется заметная черная рамка, что приводит к плохой связности, таким образом создавая значительное отличие от ожидаемого эффекта.
[0027] (2) Другое решение реализовано с помощью AVMutableComposition, то есть несколько видео объединяются в один объект AVComposition для воспроизведения. Однако данное решение является ограниченным в плане сценариев использования и является применимым лишь для видео одного формата. Если видео закодированы с помощью разных режимов, то видео, которые закодированы отличным от первого видео образом, не могут быть воспроизведены. Таким образом, требуется вторичное кодирование для унификации режимов кодирования видео, что не может соответствовать требованию быстрого плавного воспроизведения в рамках режима редактирования коротких видео.
[0028] Два вышеуказанных решения являются плохими в плане гибкости и не могут обеспечивать удобное использование в рамках предварительного просмотра некоторых основных эффектов редактирования, например обрезания, вращения, удаления звука и унификации размеров видео, что ведет к плохой расширяемости.
[0029] Настоящее изобретение предусматривает способ воспроизведения нескольких видео, который может применяться для плавного воспроизведения нескольких видео, объединенных после редактирования нескольких видео. Первое объяснение будет сначала сделано для предпосылок способа воспроизведения нескольких видео в рамках настоящего изобретения. [0030] В рамках настоящего изобретения несколько видеопроигрывателей используются для предварительной загрузки и воспроизведения нескольких видео. Видеопроигрыватель может представлять собой AVPlayer. В данном случае модель видео берется в качестве носителя, создается скользящее окно фиксированной длины, и видео в скользящем окне предварительно загружаются в AVplayer и воспроизводятся в подходящее время, обеспечивая достижение цели плавного воспроизведения нескольких видео. AVPlayer часто используется для воспроизведения одного видео и может также использоваться для воспроизведения нескольких видео путем модифицирования объекта AVPlayerltems, соответствующего AVPlayer. Однако вследствие задержки при загрузке видео плавное воспроизведение не может быть достигнуто при переключении видео. Для решения данной проблемы используются несколько объектов AVPlayer для предварительной загрузки других предназначенных для воспроизведения видео во время воспроизведения текущего видео. Таким образом, видео, воспроизведение которого завершается, немедленно переключается на следующее видео для воспроизведения и отображения, таким образом реализуя эффект плавного переключения. По сравнению с существующей реализацией системы, настоящее решение имеет относительно сложную логику управления, но все же реализуется на основе программного интерфейса приложения (API) системы, потребляет меньше ресурсов системы, имеет более высокую эффективность воспроизведения и может поддерживать все видеооборудование на iOS, присутствующее в настоящий момент на рынке. В плане реализации, для обеспечения гибкости проигрывателя логика управления воспроизведением отделена от логики управления списком видео, при этом список воспроизведения видео может управляться без управления воспроизведением, при этом все модели видео являются независимыми друг от друга. Воспроизведение может управляться удобным образом путем модифицирования модели видео для поддержки редактирования и воспроизведения видео. Способ реализации является гибким и его расширение является легким.
[0031] В рамках одного варианта осуществления, как показано на Фиг. 1, способ воспроизведения нескольких видео включает следующие этапы.
[0032] В рамках S100 создается скользящее окно в соответствии с первым предназначенным для воспроизведения видео из нескольких видео, при этом скользящее окно включает первое предназначенное для воспроизведения видео и предварительно установленное количество вторых предназначенных для воспроизведения видео, отличных от первого предназначенного для воспроизведения видео.
[0033] В рамках данного варианта осуществления система воспроизведения включает несколько предназначенных для воспроизведения видео. Данные несколько видео могут представлять собой видео, подвергнутые редактированию для объединения и воспроизведения. При инициализации системы воспроизведения создается окно воспроизведения путем использования предназначенного для воспроизведения видео в качестве первого предназначенного для воспроизведения видео и создается скользящее окно в соответствии с первым предназначенным для воспроизведения видео. Скользящее окно может включать первое предназначенное для воспроизведения видео и предварительно установленное количество вторых предназначенных для воспроизведения видео, отличных от первого предназначенного для воспроизведения видео. Длина скользящего окна создается в основном с учетом следующих случаев: одного, при котором следующее видео должно быть воспроизведено плавно при непрерывном воспроизведении нескольких видео, и другого, при котором когда пользователь перетаскивает индикатор выполнения воспроизведения, то является возможным вернуться из текущего воспроизводимого видео в предыдущее видео. Таким образом, скользящее окно может включать, по меньшей мере, три предназначенных для воспроизведения видео.
[0034] В рамках S200 данные каждого видео в скользящем окне предварительно загружаются каждым видеопроигрывателем из нескольких видеопроигрывателей.
[0035] В данном варианте осуществления система воспроизведения получает несколько видеопроигрывателей для предварительной загрузки данных каждого видео в скользящем окне, при этом количество полученных видеопроигрывателей может быть равным количеству видео в скользящем окне.
[0036] В рамках примера варианта осуществления система воспроизведения может загружать и воспроизводить первое предназначенное для воспроизведения видео с помощью одного из полученных видеопроигрывателей и предварительно загружать предварительно установленное количество вторых предназначенных для воспроизведения видео, которые не воспроизводятся в настоящий момент в скользящем окне другими полученными видеопроигрывателями. Видео могут предварительно загружаться в намеченное место соответствующего видео или могут быть напрямую предварительно загружены в виде всех данных соответствующего видео. Следует отметить, что в данном варианте осуществления предварительная загрузка в намеченное место может снижать нагрузку на систему воспроизведения.
[0037] В рамках примера варианта осуществления видеопроигрыватель представляет собой AVplayer, при этом система воспроизведения получает несколько объектов AVplayer и предварительно загружает данные каждого видео в скользящем окне путем использования каждого полученного AVplayer. В частности, система воспроизведения загружает и воспроизводит первое предназначенное для воспроизведения видео с помощью AVPlayer и одновременно предварительно загружает предварительно установленное количество вторых предназначенных для воспроизведения видео, которые не воспроизводятся в настоящий момент в скользящем окне другими объектами AVPlayer. Предварительно установленное количество вторых предназначенных для воспроизведения видео, которые не воспроизводятся в настоящий момент, предварительно загружается таким образом, что они предварительно загружаются в намеченные места соответствующих видео, или напрямую предварительно загружаются все данные соответствующих видео.
[0038] В рамках S300 воспроизводится первое предназначенное для воспроизведения видео, при этом первое предназначенное для воспроизведения видео берется в качестве текущего воспроизводимого видео.
[0039] В данном варианте осуществления система воспроизведения берет первое предназначенное для воспроизведения видео в качестве текущего воспроизводимого видео и воспроизводит его в окне воспроизведения. В рамках всего процесса воспроизведения нескольких видео текущее воспроизводимое видео переключается для воспроизведения в соответствии с условиями воспроизведения, то есть видео, которое воспроизводится, берется в качестве текущего воспроизводимого видео. Например, при окончании текущего воспроизводимого видео система воспроизведения напрямую переключается на следующее предварительно загруженное предназначенное для воспроизведения видео, то есть напрямую переключается на второе предназначенное для воспроизведения видео, и воспроизводит второе предназначенное для воспроизведения видео в окне воспроизведения, при этом второе предназначенное для воспроизведения видео берется в качестве текущего воспроизводимого видео. Когда система воспроизведения получает пользовательскую операцию перетаскивания для воспроизведения, текущее воспроизводимое видео переключается в соответствии с пользовательской операцией перетаскивания для воспроизведения. Когда система воспроизведения получает пользовательскую операцию запуска пропуска с помощью индикатора выполнения воспроизведения, текущее воспроизводимое видео переключается в соответствии с операцией запуска пропуска с помощью индикатора выполнения воспроизведения. Кроме того, при изменении времени воспроизведения или воспроизводимого контента текущего воспроизводимого видео, скользящее окно модифицируется с расположением в его центре текущего воспроизводимого видео. Операция запуска пропуска с помощью индикатора выполнения воспроизведения представляет собой операцию, при которой пользователь щелкает на индикатор выполнения воспроизведения для пропуска.
[0040] В некоторых вариантах осуществления после этапа S300 способ дополнительно включает: модифицирование скользящего окна в соответствии с условиями воспроизведения текущего воспроизводимого видео; или модифицирование скользящего окна в ответ на получение операции перетаскивания для воспроизведения или операции запуска пропуска с помощью индикатора выполнения воспроизведения. То есть в рамках данного варианта осуществления при воспроизведении системой воспроизведения видео нормальным образом скользящее окно может быть модифицировано с расположением в его центре текущего воспроизводимого видео путем перетаскивания или щелчка на индикаторе выполнения воспроизведения для пропуска.
[0041] Следует отметить, что модифицирование скользящего окна с расположением текущего воспроизводимого видео в его центре может означать постоянное модифицирование скользящего окна в плане положения текущего воспроизводимого видео в скользящем окне.
[0042] В рамках S400 одно из вторых предназначенных для воспроизведения видео воспроизводится путем вызова интерфейса видеопроигрывателя, соответствующего второму предназначенному для воспроизведения видео в скользящем окне, в ответ на переключение текущего воспроизводимого видео на второе предназначенное для воспроизведения видео.
[0043] В рамках данного варианта осуществления система воспроизведения воспроизводит текущее воспроизводимое видео в окне воспроизведения. При определении того, что текущее воспроизводимое видео переключается для воспроизведения, вызывается интерфейс видеопроигрывателя, соответствующего следующему предназначенному для воспроизведения видео, при этом интерфейсом видеопроигрывателя запускается воспроизведение следующего видео. Следует отметить, что когда текущее воспроизводимое видео переключается на второе предназначенное для воспроизведения видео, скользящее окно может двигаться в соответствии с текущим воспроизводимым видео для обеспечения расположения следующего предназначенного для воспроизведения видео в скользящем окне. Когда видео, на которое осуществляется переключение, представляет собой второе предназначенное для воспроизведения видео в скользящем окне, то есть следующее видео, на которое будет переключено текущее воспроизводимое видео для воспроизведения в окне воспроизведения, представляет собой второе предназначенное для воспроизведения видео, вызывается интерфейс видеопроигрывателя, соответствующего второму предназначенному для воспроизведения видео, на которое осуществляется переключение в скользящем окне, при этом воспроизводится второе предназначенное для воспроизведения видео, на которое осуществляется переключение.
[0044] Видео может быть переключено для воспроизведения следующим образом: когда система автоматически пропускает второе предназначенное для воспроизведения видео, на которое осуществляется переключение после завершения воспроизведения текущего воспроизводимого видео, может быть вызван интерфейс видеопроигрывателя второго предназначенного для воспроизведения видео, на которое осуществляется переключение, при этом второе предназначенное для воспроизведения видео воспроизводится с помощью интерфейса видеопроигрывателя; или когда система воспроизведения получает пользовательскую операцию запуска пропуска с помощью индикатора выполнения воспроизведения, может быть получен интерфейс видеопроигрывателя второго предназначенного для воспроизведения видео, на которое осуществляется переключение, в соответствии с пользовательской операцией запуска пропуска с помощью индикатора выполнения воспроизведения, при этом второе предназначенное для воспроизведения видео воспроизводится с помощью интерфейса видеопроигрывателя; или когда система воспроизведения получает пользовательскую операцию перетаскивания для воспроизведения, получается интерфейс видеопроигрывателя второго предназначенного для воспроизведения видео, на которое осуществляется переключение, в соответствии с пользовательской операцией перетаскивания для воспроизведения, при этом второе предназначенное для воспроизведения видео воспроизводится с помощью интерфейса видеопроигрывателя. Кроме того, следует отметить, что второе предназначенное для воспроизведения видео может представлять собой видео, которое уже было воспроизведено, или любое видео, которое не было воспроизведено после текущего воспроизводимого видео в списке воспроизведения.
[0045] В некоторых вариантах осуществления этап S400 включает: вызов интерфейса видеопроигрывателя, соответствующего второму предназначенному для воспроизведения видео в скользящем окне, и переключение экрана видеопроигрывателя, соответствующего второму предназначенному для воспроизведения видео, для отображения в ответ на переключение текущего воспроизводимого видео на второе предназначенное для воспроизведения видео.
[0046] В рамках примера варианта осуществления при необходимости переключения текущего воспроизводимого видео переключается экран (CAPlayerLayer) объекта AVPlayer, соответствующего предварительно загруженному второму предназначенному для воспроизведения видео в скользящем окне, таким образом обеспечивая плавное переключение видео. Также, предварительно загружаются другие видео в скользящем окне, в то время как запускается второе предназначенное для воспроизведения видео.
[0047] В рамках способа воспроизведения нескольких видео в рамках описанного выше варианта осуществления создается скользящее окно в соответствии с первым предназначенным для воспроизведения видео из нескольких видео, при этом скользящее окно включает предварительно установленное количество вторых предназначенных для воспроизведения видео в дополнение к первому предназначенному для воспроизведения видео. В соответствии со способом, первое предназначенное для воспроизведения видео воспроизводится в качестве текущего воспроизводимого видео, при этом несколько видеопроигрывателей используются для предварительной загрузки текущего воспроизводимого видео и предварительно установленного количества вторых предназначенных для воспроизведения видео. При окончании текущего воспроизводимого видео и немедленном переключении на следующее видео для воспроизведения и отображения, вызывается интерфейс видеопроигрывателя, соответствующего второму предназначенному для воспроизведения видео, на которое осуществляется переключение в скользящем окне, и затем воспроизводится второе предназначенное для воспроизведения видео, на которое осуществляется переключение, обеспечивая реализацию плавного переключения между несколькими видео, которые переключаются для воспроизведения. Таким образом, предварительный просмотр в объединенном виде нескольких видео может быть реализован в реальном времени без вторичного кодирования видео и без адаптивного конфигурирования для видео, при этом улучшается расширяемость.
[0048] В некоторых вариантах осуществления, как показано на Фиг. 2, перед S200 способ дополнительно включает следующие этапы.
[0049] В рамках S110 предварительно установленное количество видеопроигрывателей получаются в соответствии с количеством видео в скользящем окне.
[0050] В рамках S120 пул проигрывателей конфигурируется в соответствии с предварительно установленным количеством видеопроигрывателей.
[0051] S200 включает следующий этап.
[0052] В рамках S210 несколько видеопроигрывателей получаются из пула проигрывателей, при этом данные каждого видео в скользящем окне предварительно загружаются каждым видеопроигрывателем из нескольких видеопроигрывателей.
[0053] В данном варианте осуществления система воспроизведения может получать количество видео, содержащихся в скользящем окне, и устанавливать предварительно установленное количество видеопроигрывателей в соответствии с количеством видео. Данное предварительно установленное количество может являться большим или равным количеству видео, содержащихся в скользящем окне, для обеспечения того, что достаточное количество видеопроигрывателей может быть получено из пула видеопроигрывателей для предварительной загрузки данных каждого видео в скользящем окне. Система воспроизведения может конфигурировать пул проигрывателей в соответствии с предварительно установленным количеством видеопроигрывателей, то есть пул видеопроигрывателей включает предварительно установленное количество видеопроигрывателей. После этого система воспроизведения может получать несколько видеопроигрывателей из пула проигрывателей и обеспечивать предварительную загрузку данных каждого видео в скользящем окне с помощью каждого видеопроигрывателя из нескольких видеопроигрывателей.
[0054] При реализации данного варианта осуществления после S300 способ дополнительно включает следующие этапы.
[0055] В рамках S310 скользящее окно управляется для движения одновременно с воспроизведением текущего воспроизводимого видео.
[0056] В рамках S320, когда видео в скользящем окне выходит за пределы скользящего окна, видеопроигрыватель, связанный с вышедшим за пределы видео, высвобождается и добавляется в пул проигрывателей.
[0057] В рамках данной реализации система воспроизведения может отслеживать текущее воспроизводимое видео в окне воспроизведения и может управлять скользящим окном для движения одновременно с воспроизведением текущего воспроизводимого видео. То есть скользящее окно может динамически меняться одновременно с воспроизведением текущего воспроизводимого видео. При движении скользящего окна видео в скользящем окне выходит за пределы скользящего окна. При этом система воспроизведения может высвобождать видеопроигрыватель, связанный с вышедшим за пределы видео, и добавлять видеопроигрыватель в пул проигрывателей.
[0058] Также, после S310 способ дополнительно включает: предварительную загрузку третьего предназначенного для воспроизведения видео в подвергнутом движению скользящем окне видеопроигрывателем из пула видео. В частности, одновременно с движением скользящего окна первое предназначенное для воспроизведения видео или второе предназначенное для воспроизведение видео в скользящем окне движется за пределы скользящего окна, при этом третье предназначенное для воспроизведения видео одновременно добавляется в скользящее окно. При этом система воспроизведения может получать один видеопроигрыватель из пула проигрывателей для предварительной загрузки третьего предназначенного для воспроизведения видео. В частности, полученный видеопроигрыватель может использоваться для предварительной загрузки третьего предназначенного для воспроизведения видео в намеченное место. Третье предназначенное для воспроизведения видео предварительно загружается в намеченное место без загрузки всех данных третьего предназначенного для воспроизведения видео на этапе предварительной загрузки, тем самым снижая нагрузку на систему воспроизведения.
[0059] Таким образом, в рамках данного варианта осуществления видеопроигрыватель, соответствующий вышедшему за пределы видео в скользящем окне, высвобождается, и при этом высвобожденный видеопроигрыватель добавляется в пул проигрывателей, так что система воспроизведения может получать видеопроигрыватель из пула проигрывателей для предварительной загрузки третьего предназначенного для воспроизведения видео. Таким образом, видеопроигрыватель в пуле проигрывателей может непрерывно повторно использоваться для предварительной загрузки видео в скользящем окне для снижения количества ресурсов, потребляемых системой.
[0060] В некоторых вариантах осуществления скользящее окно может включать текущее воспроизводимое видео, воспроизведенное видео и невоспроизведенное видео. Термин "воспроизведенное" означает данные или контент, который был просмотрен, проигран заново, или любым иным образом потребленный контент. Термин "невоспроизведенное" означает новые данные или контент, который не был проигран заново полностью, или означает новые данные или контент, для которого не было начато воспроизведение конкретным пользователем.
[0061] S400 включает: воспроизведение воспроизведенного видео в качестве второго предназначенного для воспроизведения видео путем вызова интерфейса видеопроигрывателя, соответствующего воспроизведенному видео, в ответ на операцию запуска в виде переключения на воспроизведение воспроизведенного видео; и воспроизведение невоспроизведенного видео в качестве второго предназначенного для воспроизведения видео путем вызова интерфейса видеопроигрывателя, соответствующего невоспроизведенному видео, в ответ на операцию запуска в виде переключения на воспроизведение невоспроизведенного видео.
[0062] В данном варианте осуществления после подвергания скользящего окна управлению для движения одновременно с воспроизведением текущего воспроизводимого видео, скользящее окно может включать три типа видео, а именно текущее воспроизводимое видео, воспроизведенное видео и невоспроизведенное видео. При этом при получении операции запуска пользователем переключения текущего воспроизводимого видео на воспроизведенное видео, система воспроизведения может вызвать интерфейс видеопроигрывателя, соответствующего воспроизведенному видео, в соответствии с полученной операцией и воспроизвести воспроизведенное видео с помощью интерфейса видеопроигрывателя. При получении операции запуска пользователем переключения текущего воспроизводимого видео на невоспроизведенное видео, система воспроизведения может вызвать интерфейс видеопроигрывателя, соответствующего невоспроизведенному видео, в соответствии с полученной операцией и воспроизвести невоспроизведенное видео с помощью интерфейса видеопроигрывателя. Операция запуска пользователем может представлять собой операцию перетаскивания для воспроизведения или операцию запуска пропуска с помощью индикатора выполнения воспроизведения. Когда пользователь перетаскивает индикатор выполнения воспроизведения, то является возможным вернуться из текущего воспроизводимого видео в видео, являющееся предшествующим относительно текущего воспроизводимого видео в списке воспроизведения, или напрямую перейти к видео, являющемуся следующим относительно текущего воспроизводимого видео в списке воспроизведения.
[0063] Следует отметить, что в настоящем варианте осуществления вследствие того, что амплитуда перетаскивания пользователем может быть малой или большой, координаты щелчка, в которых пользователь осуществляет щелчок на индикаторе выполнения воспроизведения для воспроизведения, могут быть ближе или дальше от соответствующих координат текущего воспроизводимого видео на индикаторе выполнения воспроизведения. Таким образом, при определении пользовательской операции запуска система воспроизведения может определять видео, на которое осуществляется переключение в соответствии с конкретными условиями операции запуска. Таким образом, воспроизведенное видео в рамках настоящего варианта осуществления может представлять собой любое видео, которое было воспроизведено перед текущим воспроизводимым видео в списке воспроизведения, при этом невоспроизведенное видео может представлять собой любое видео, которое не было воспроизведено после текущего воспроизводимого видео в списке воспроизведения.
[0064] Для дальнейшего объяснения способа воспроизведения нескольких видео, как описано в рамках любого из приведенных выше вариантов осуществления, конкретный вариант осуществления подробно описан ниже для объяснения способа воспроизведения нескольких видео.
[0065] Сначала будет описано скользящее окно в рамках настоящего изобретения. В рамках настоящего изобретения скользящее окно реализовано как показано на Фиг. 4 ниже. Присутствуют 9 предназначенных для воспроизведения видео в списке воспроизведения 10, при этом создается скользящее окно 100 длиной 3 (когда общее количество видео составляет менее 3, размер окна соответствует количеству видео). Как показано с помощью пунктирных линий, скользящее окно 100 включает 3 видео, а именно воспроизведенное видео, текущее воспроизводимое видео и невоспроизведенное видео. Текущее воспроизводимое видео воспроизводится в окне воспроизведения 1000. Три объекта AVPlayer, количество которых соответствует количеству видео в скользящем окне 100, образуют пул проигрывателей. В то же время, видео в скользящем окне предварительно загружаются с помощью объектов AVPlayer из пула проигрывателей, при этом скользящее окно движется одновременно с воспроизведением текущего воспроизводимого видео. Принимается, что система воспроизведения воспроизводит видео нормальным образом, при этом когда текущее воспроизводимое видео завершается, система воспроизведения может высвобождать видеопроигрыватель, соответствующий текущему воспроизводимому видео, и начинать воспроизводить предварительно загруженное следующее видео. Таким образом, видео в скользящем окне могут быть предварительно загружены или воспроизведены путем непрерывного повторного использования AVPlayer из пула проигрывателей, так что несколько видео могут плавно переключаться для воспроизведения. Размер скользящего окна 100 устанавливается в основном с учетом двух случаев: одного, при котором следующее видео должно быть воспроизведено плавно при непрерывном воспроизведении нескольких видео, и другого, при котором когда пользователь перетаскивает индикатор выполнения воспроизведения, то является возможным вернуться из текущего воспроизводимого видео в видео, являющееся предыдущим относительно текущего воспроизводимого видео в списке воспроизведения. Таким образом, длина скользящего окна 100 может быть установлена как 3, то есть в скользящее окно могут быть включены 3 видео.
[0066] Во-вторых, будет описана логика управления плавным переключением и решение в виде стратегии предварительной загрузки видеопроигрывателя. При инициализации системы воспроизведения видео может быть создано окно воспроизведения путем использования первого предназначенного для воспроизведения видео в качестве первого предназначенного для воспроизведения видео, при этом скользящее окно предварительно устанавливается в соответствии с первым предназначенным для воспроизведения видео, видеопроигрыватели назначаются видео в скользящем окне, и видео в скользящем окне предварительно загружаются в намеченные места. Когда окно воспроизведения воспроизводит видео нормальным образом, то с помощью перетаскивания или щелчка на индикаторе выполнения воспроизведения для пропуска система воспроизведения может всегда модифицировать скользящее окно в плане текущего воспроизводимого видео. При необходимости переключения текущего воспроизводимого видео отображается экран (CAPlayerLayer) объекта AVPlayer, соответствующего предварительно загруженному второму предназначенному для воспроизведения видео, обеспечивая плавное переключение, и затем скользящее окно модифицируется, при этом другие видео в скользящем окне предварительно загружаются пока запускается видео, при этом соответствующая блок-схема показана на Фиг. 5.
[0067] В рамках примера варианта осуществления, если взять последовательное воспроизведение в качестве примера, то способ может в частности быть реализован как описано ниже: принимая, что видео в скользящем окне представляют собой, соответственно, воспроизведенное видео а, текущее воспроизводимое видео b и невоспроизведенное видео с в виде последовательности, при этом видео после видео с в списке воспроизведения представляет собой видео d, общая логика управления описана ниже:
[0068] (1) Когда видео b начинает воспроизводиться, следующее видео с предварительно загружается в намеченное место.
[0069] (2) Когда видео b завершается, экран окна воспроизведения остается на последнем кадре видео b, при этом скользящее окно движется назад для воспроизведения предварительно загруженного видео с. При этом видео а выходит за пределы скользящего окна.
[0070] (3) Как описано в рамках этапа (1), видео с начинает воспроизводиться, при этом AVPlayer, связанный с видео а, высвобождается в пул проигрывателей, свободный AVPlayer из пула проигрывателей используется для предварительной загрузки видео d в намеченное место, и циркуляция осуществляется как описано в рамках этапов (1) и (2).
[0071] В дополнение к описанному выше, способ дополнительно включает перетаскивание индикатора выполнения воспроизведения для пропуска для плавного воспроизведения и щелчок для переключения на намеченное видео для плавного переключения. В рамках реального сценария применения в связи с изменчивостью предназначенного для воспроизведения видео, например вследствие вставки или удаления видео, для гарантии обеспечения надежности решения система воспроизведения может проверять видео в списке воспроизведения, обеспечивать включение видео в скользящем окне и предварительную загрузку каждого видео в скользящем окне для обеспечения нормальной реализации сервисов.
[0072] Таким образом, описанный выше способ воспроизведения нескольких видео фактически обеспечивает реализацию плавного воспроизведения нескольких видео, включая плавное воспроизведение нормальным образом, плавное воспроизведение путем перетаскивания, плавное воспроизведение путем щелчка для переключения и так далее. Также может быть обеспечена возможность плавного предварительного просмотра простых эффектов, связанных с редактированием видео, таких как изменение скорости, вращение, обрезка соответствующих видео и так далее. Кроме того, настоящее изобретение может обеспечивать реализацию плавного предварительного просмотра нескольких видео в реальном времени без вторичного кодирования видео и может поддерживать все оборудование на iOS.
[0073] В целом, в рамках вариантов осуществления настоящего изобретения создается скользящее окно в соответствии с первым предназначенным для воспроизведения видео из нескольких видео, при этом скользящее окно включает предварительно установленное количество вторых предназначенных для воспроизведения видео в дополнение к первому предназначенному для воспроизведения видео. В соответствии со способом, первое предназначенное для воспроизведения видео воспроизводится в качестве текущего воспроизводимого видео, при этом несколько видеопроигрывателей используются для предварительной загрузки текущего воспроизводимого видео и предварительно установленного количества вторых предназначенных для воспроизведения видео. При окончании текущего воспроизводимого видео и немедленном переключении на следующее видео для воспроизведения и отображения, вызывается интерфейс видеопроигрывателя, соответствующего второму предназначенному для воспроизведения видео, на которое осуществляется переключение в скользящем окне, и затем воспроизводится второе предназначенное для воспроизведения видео, на которое осуществляется переключение, обеспечивая реализацию плавного переключения между несколькими видео, которые переключаются для воспроизведения. Таким образом, предварительный просмотр в объединенном виде нескольких видео может быть реализован в реальном времени без вторичного кодирования видео и без адаптивного конфигурирования для видео, при этом улучшается расширяемость.
[0074] Настоящее изобретение дополнительно предусматривает носитель данных, на котором хранится компьютерная программа. Компьютерная программа при выполнении процессором побуждает процессор реализовывать способ воспроизведения нескольких видео, как определено в рамках любого из описанных выше вариантов осуществления. Носитель данных может представлять собой память, являющуюся, например, внутренней памятью или внешней памятью, или как внутренней памятью, так и внешней памятью. Внутренняя память может включать постоянную память (ROM), программируемую ROM (PROM), электрическую PROM (EPROM), электрически стираемую PROM (EEPROM), флеш-память или память произвольного доступа (RAM). Внешняя память может включать жесткий диск, флоппи-диск, ZIP-диск, USB флеш-диск, магнитную ленту и так далее. Описанный в рамках настоящего изобретения носитель данных включает, но без ограничения, данные типы памяти. Память, описанная в рамках настоящего изобретения, описана лишь в качестве примера, но не ограничения.
[0075] Настоящее изобретение дополнительно предусматривает компьютерное устройство. Компьютерное устройство включает, по меньшей мере, один процессор, память и, по меньшей мере, одно приложение. Указанное, по меньшей мере, одно приложение при выполнении, по меньшей мере, указанным одним процессором побуждает указанный, по меньшей мере, один процессор реализовывать способ воспроизведения нескольких видео, как определено в рамках любого из описанных выше вариантов осуществления.
[0076] На Фиг. 6 показана схематическая структурная диаграмма компьютерного устройства в соответствии с вариантом осуществления настоящего изобретения. Компьютерное устройство может представлять собой сервер, персональный компьютер и сетевое устройство. Как показано на Фиг. 6, компьютерное устройство включает процессор 603, память 605, модуль ввода 607, модуль отображения 609 и так далее. Специалистам в данной области будет очевидно, что структура устройства, показанная на Фиг. 6, не является ограничивающей все устройства и может включать больше или меньше компонентов, чем те, которые показаны, или комбинацию некоторых компонентов. Память 605 может быть выполнена с возможностью хранить приложение 601 и все функциональные модули. Процессор 603 выполняет различные функции и обработку данных устройства путем выполнения приложения 601, хранящегося в памяти 605. Память может представлять собой внутреннюю память или внешнюю память, или включает как внутреннюю память, так и внешнюю память. Внутренняя память может включать ROM, PROM, EPROM, EEPROM, флеш-память или RAM. Внешняя память может включать жесткий диск, флоппи-диск, ZIP-диск, USB флеш-диск, магнитную ленту и так далее. Память, описанная в рамках настоящего изобретения, включает, но не ограничивается данными типами памяти. Память, описанная в рамках настоящего изобретения, описана лишь в качестве примера, но не ограничения.
[0077] Модуль ввода 607 может быть выполнен с возможностью получать ввод в виде сигналов и ключевых слов от пользователей. Модуль ввода 607 может включать тач-панель и другие устройства ввода. Тач-панель может собирать операции в виде прикосновений (например, операции пользователей на поверхности или рядом с тач-панелью с использованием подходящего объекта или элемента, например пальца, стилуса и так далее) и также может управлять подходящим устройством для связывания на основе предварительно определенной программы. Другие устройства ввода могут включать, но без ограничения, одно или несколько устройств в виде физической клавиатуры, функциональных клавиш (таких как клавиша управления воспроизведением и клавиша переключения), трекбол, мышь, манипулятор и так далее. Модуль отображения 609 может быть выполнен с возможностью отображать введенную пользователями информацию или информацию, предоставляемую пользователям, а также различные меню компьютерного устройства. Модуль отображения 609 может быть выполнен в форме жидкокристаллического дисплея (LCD), дисплея на основе органических светодиодов (OLED), и им подобных. Процессор 603 представляет собой центр управления компьютерным устройством и связывает все части всего компьютера с помощью различных интерфейсов и цепей. Путем запуска или выполнения программных программ и/или модулей, хранящихся в памяти 605, и вызова данных, хранящихся в памяти, процессор выполняет различные функции и обработку данных.
[0078] В некоторых вариантах осуществления устройство включает, по меньшей мере, один процессор 603, по меньшей мере, одну память 605 и, по меньшей мере, одно приложение 601. Указанное, по меньшей мере, одно приложение 601 хранится в памяти 605. Указанное, по меньшей мере, одно приложение при выполнении, по меньшей мере, указанным одним процессором 603 побуждает указанный, по меньшей мере, один процессор 603 реализовывать способ воспроизведения нескольких видео, как определено в рамках любого из описанных выше вариантов осуществления.
[0079] Кроме того, все функциональные модули в рамках вариантов осуществления настоящего изобретения могут быть встроены в один вычислительный модуль. Иначе, каждый модуль присутствует физически независимым образом. Иначе, два или более модуля могут быть встроены в один модуль. Указанные выше встроенные модули могут быть реализованы в форме аппаратного или программного функционального модуля. Встроенные модули при реализации в форме программного функционального модуля и продаже или использовании в качестве независимого продукта могут храниться на машиночитаемом носителе данных.
[0080] Серийные номера вариантов осуществления настоящего изобретения приведены лишь для описания и не отражают приоритет вариантов осуществления.
[0081] Специалистам в данной области будет очевидно, что все или часть этапов, описанных в рамках указанных выше вариантов осуществления, могут быть реализованы с помощью аппаратного обеспечения или с помощью соответствующего аппаратного обеспечения на основе инструкций приложений, хранящихся на машиночитаемом носителе данных, таком как постоянная память, диск или CD и так далее.
[0082] Выше описаны лишь предпочтительные варианты осуществления настоящего изобретения, однако они не являются ограничивающими настоящее изобретение. Любые модификации, эквивалентные замены, улучшения и им подобные, сделанные в рамках духа и принципов настоящего изобретения, должны быть включены в защищаемый объем настоящего изобретения.