KR102025504B1 - 디스플레이 모드 기반 미디어 플레이어 스위칭 - Google Patents

디스플레이 모드 기반 미디어 플레이어 스위칭 Download PDF

Info

Publication number
KR102025504B1
KR102025504B1 KR1020187028983A KR20187028983A KR102025504B1 KR 102025504 B1 KR102025504 B1 KR 102025504B1 KR 1020187028983 A KR1020187028983 A KR 1020187028983A KR 20187028983 A KR20187028983 A KR 20187028983A KR 102025504 B1 KR102025504 B1 KR 102025504B1
Authority
KR
South Korea
Prior art keywords
media item
media
media player
player
item
Prior art date
Application number
KR1020187028983A
Other languages
English (en)
Other versions
KR20180113644A (ko
Inventor
로버트 크리스토퍼 곤트
리차드 벤자민 라이더
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20180113644A publication Critical patent/KR20180113644A/ko
Application granted granted Critical
Publication of KR102025504B1 publication Critical patent/KR102025504B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1059End-user terminal functionalities specially adapted for real-time communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4438Window management, e.g. event handling following interaction with the user interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/268Signal distribution or switching
    • H04N5/44591

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

미디어 아이템은 미디어 플레이어를 통해 제시되고, 미디어 플레이어는 미디어 아이템을 수신하도록 구성되고, 미디어 아이템은 포맷과 연관되고 오디오 성분을 포함한다. 미디어 플레이어와 연관된 디스플레이 모드에서의 변화에 대한 응답으로, 대응하는 미디어 아이템을 수신하도록 구성되는 제2 미디어 플레이어가 식별되고, 대응하는 미디어 아이템은 제2 포맷과 연관되고 오디오 성분에 매칭하는 제2 오디오 성분을 포함한다. 미디어 플레이어를 통한 미디어 아이템의 제시를 중단하기 위한 미디어 아이템에서의 특정 위치가 결정되고, 제2 미디어 플레이어를 사용하여 대응하는 미디어 아이템의 제시를 시작하기 위한 대응하는 미디어 아이템에서의 대응하는 위치가 결정된다. 특정 위치에 도달하는 것에 대한 응답으로, 동시에, 미디어 아이템의 제시가 중단되고 대응하는 위치에서 대응하는 미디어 아이템의 제시가 시작된다.

Description

디스플레이 모드 기반 미디어 플레이어 스위칭{DISPLAY MODE BASED MEDIA PLAYER SWITCHING}
본 개시내용은 그래픽 사용자 인터페이스를 통해 미디어 아이템을 제시하는 분야에 관한 것이고, 구체적으로는 미디어 플레이어들과 연관된 디스플레이 모드들에 대한 변화들에 기초하여 미디어 플레이어들을 스위칭함으로써 대역폭을 보존하는 것에 관한 것이다.
디지털 디바이스들의 많은 소유자들은 비디오 파일들을 스트리밍하기 위해 이들을 사용한다. 사용자는, 미디어 플레이어가 비디오 파일을 스트리밍하는 동안, 비디오 파일의 영상 성분이 사용자에게 디스플레이되지 않도록 미디어 플레이어를 배경으로 이동시킬 수 있다. 이러한 경우들에서, 미디어 플레이어는, 비디오 파일의 오직 오디오 성분만이 사용자에게 실제로 제시되고 있는 경우에도 비디오를 계속 스트리밍한다. 이는, 비디오 파일의 영상 성분이 비디오 파일의 오디오 성분보다 훨씬 더 큰 지분을 구성하고, 배경의 미디어 플레이어가 스트리밍 비디오의 영상 성분을 사용자에게 제시하고 있지 않기 때문에, 대역폭의 효율적인 사용이 아니다. 또한, 일부 경우들에서, 배경의 미디어 플레이어는 비디오의 디스플레이 크기와 무관하게 비디오를 계속 스트리밍한다. 즉, 사용자가 미디어 플레이어를 배경에 배치하기 전에 미디어 플레이어를 더 작은 해상도(예를 들어, 144p)로 리사이징(resize)하더라도, 디바이스와 연결부가 지원할 경우 미디어 플레이어는 여전히 더 높은 해상도 (예를 들어, 1080p)로 스트리밍할 것이다. 일반적으로, 배경의 미디어 플레이어로부터 비디오를 스트리밍함에 있어서, 대역폭, 디지털 디바이스의 자원 및 비디오 파일을 디지털 디바이스로 스트리밍하는 미디어 제공자의 자원들을 낭비(오직 오디오만 스트리밍하는 것보다 더 많은 메모리 및 전력을 사용)한다.
개시된 실시예들은, 사용자 디바이스 상의 미디어 플레이어들 사이에서 스위칭하기 위한 컴퓨터-구현 방법, 실행가능한 코드를 저장하는 비일시적 컴퓨터 판독가능 저장 매체 및 시스템을 포함한다.
사용자 디바이스 상의 미디어 플레이어들 사이에서 스위칭하기 위한 컴퓨터-구현 방법의 일 실시예는, 제1 미디어 플레이어를 통해 사용자 디바이스의 사용자에게 미디어 아이템을 제시하는 단계를 포함하고, 제1 미디어 플레이어는 제1 데이터 스트림에서 미디어 아이템을 수신하도록 구성되고, 미디어 아이템은 제1 포맷과 연관되고 제1 오디오 성분을 포함한다. 제1 미디어 플레이어와 연관된 디스플레이 모드에서의 변화에 대한 응답으로, 제2 데이터 스트림에서 대응하는 미디어 아이템을 수신하도록 구성되는 제2 미디어 플레이어가 식별되고, 대응하는 미디어 아이템은 제2 포맷과 연관되고 제1 오디오 성분에 매칭하는 제2 오디오 성분을 포함한다. 추가적으로, 제1 미디어 플레이어를 통한 미디어 아이템의 제시를 중단하기 위한 미디어 아이템에서의 특정 위치가 결정되고, 제2 미디어 플레이어를 사용하여 대응하는 미디어 아이템의 제시를 시작하기 위한 대응하는 미디어 아이템에서의 대응하는 위치가 결정된다. 미디어 아이템에서의 특정 위치에 도달하는 것에 대한 응답으로, 동시에, 제1 미디어 플레이어를 통한 미디어 아이템의 제시가 중단되고 제2 미디어 플레이어를 사용하여 대응하는 위치에서 대응하는 미디어 아이템의 제시가 시작된다.
사용자 디바이스 상의 미디어 플레이어들 사이에서 스위칭하기 위한 실행가능한 컴퓨터 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체의 일 실시예는, 제1 미디어 플레이어를 통해 사용자 디바이스의 사용자에게 미디어 아이템을 제시하는 것을 포함하고, 제1 미디어 플레이어는 제1 데이터 스트림에서 미디어 아이템을 수신하도록 구성되고, 미디어 아이템은 제1 포맷과 연관되고 제1 오디오 성분을 포함한다. 제1 미디어 플레이어와 연관된 디스플레이 모드에서의 변화에 대한 응답으로, 제2 데이터 스트림에서 대응하는 미디어 아이템을 수신하도록 구성되는 제2 미디어 플레이어가 식별되고, 대응하는 미디어 아이템은 제2 포맷과 연관되고 제1 오디오 성분에 매칭하는 제2 오디오 성분을 포함한다. 추가적으로, 제1 미디어 플레이어를 통한 미디어 아이템의 제시를 중단하기 위한 미디어 아이템에서의 특정 위치가 결정되고, 제2 미디어 플레이어를 사용하여 대응하는 미디어 아이템의 제시를 시작하기 위한 대응하는 미디어 아이템에서의 대응하는 위치가 결정된다. 미디어 아이템에서의 특정 위치에 도달하는 것에 대한 응답으로, 동시에, 제1 미디어 플레이어를 통한 미디어 아이템의 제시가 중단되고 제2 미디어 플레이어를 사용하여 대응하는 위치에서 대응하는 미디어 아이템의 제시가 시작된다.
사용자 디바이스 상의 미디어 플레이어들 사이에서 스위칭하기 위한 디바이스의 일 실시예는, 모듈들을 실행하도록 구성되는 프로세서 및 모듈들을 저장하는 메모리를 포함한다. 모듈들은, 제1 미디어 플레이어를 통해 사용자 디바이스의 사용자에게 미디어 아이템을 제시하도록 구성되는 사용자 인터페이스 모듈을 포함하고, 제1 미디어 플레이어는 제1 데이터 스트림에서 미디어 아이템을 수신하도록 구성되고, 미디어 아이템은 제1 포맷과 연관되고 제1 오디오 성분을 포함한다. 모듈들은 또한, 제1 미디어 플레이어와 연관된 디스플레이 모드에서의 변화를 검출하도록 구성되는 디스플레이 모드 모듈을 포함한다. 모듈들은 또한, 제2 데이터 스트림에서 대응하는 미디어 아이템을 수신하도록 구성되는 제2 미디어 플레이어를 식별하도록 구성되는 플레이어 식별 모듈을 포함하고, 대응하는 미디어 아이템은 제2 포맷과 연관되고 제1 오디오 성분에 매칭하는 제2 오디오 성분을 포함한다. 모듈들은 또한, 제1 미디어 플레이어를 통한 미디어 아이템의 제시를 중단하기 위한 미디어 아이템에서의 특정 위치, 및 제2 미디어 플레이어를 사용하여 대응하는 미디어 아이템의 제시를 시작하기 위한 대응하는 미디어 아이템에서의 대응하는 위치를 결정하도록 구성되는 동기화 모듈을 포함한다. 추가적으로, 사용자 인터페이스 모듈은, 미디어 아이템에서의 특정 위치에 도달하는 것에 대한 응답으로, 동시에, 제1 미디어 플레이어를 통한 미디어 아이템의 제시를 중단하고 제2 미디어 플레이어를 사용하여 대응하는 위치에서 대응하는 미디어 아이템의 제시를 시작하도록 추가로 구성된다.
도 1은 액티브 미디어 플레이어와 연관된 디스플레이 모드에 대한 검출된 변화들에 기초하는 미디어 플레이어 스위칭을 위한 환경의 실시예를 예시하는 블록도이다.
도 2는 도 1에 도시된 엔티티들을 구현하기 위한 예시적인 컴퓨터를 예시하는 블록도이다.
도 3은 일 실시예에 따른 사용자 디바이스의 플레이어 제어기 모듈 내의 모듈들의 상세도를 예시하는 블록도이다.
도 4는 일 실시예에 따라 사용자 디바이스 상의 액티브 미디어 플레이어와 연관된 디스플레이 모드에 대한 검출된 변화들에 기초하여 미디어 플레이어들 사이에서 스위칭하는 프로세스를 예시하는 흐름도이다.
도면들 및 하기의 설명은 오직 예시의 방식으로 특정 실시예들을 설명한다. 본 분야의 통상의 기술자는, 하기 설명으로부터, 본원에서 설명되는 원리들로부터 벗어남이 없이, 본원에 예시된 구조들 및 방법들의 대안적인 실시예들이 사용될 수 있음을 쉽게 인식할 것이다. 이제, 몇몇 실시예들에 대한 참조가 상세하게 이루어질 것이고, 그 예들은 첨부된 도면들에 예시된다. 어디서나 실시가능한 유사하거나 동일한 참조 번호들이 도면들에서 사용될 수 있고, 유사한 또는 동일한 기능을 표시할 수 있음을 주목한다.
도 1은 액티브 미디어 플레이어와 연관된 디스플레이 모드에 대한 검출된 변화들에 기초하는 미디어 플레이어 스위칭을 위한 환경의 실시예를 예시하는 블록도이다. 환경은 네트워크(110)에 의해 미디어 소스(120)에 접속된 사용자 디바이스(100)를 포함한다. 여기서 오직 하나의 사용자 디바이스(100) 및 미디어 소스(120)만이 예시되지만, 이러한 엔티티들 각각의 다수의 예들이 존재할 수 있다. 예를 들어, 다수의 미디어 소스들(120)과 통신하는 수천 또는 수백만의 사용자 디바이스들(100)이 존재할 수 있다.
네트워크(110)는 사용자 디바이스들(100)과 미디어 소스들(120) 사이에 통신 인프라구조를 제공한다. 네트워크(110)는 통상적으로 인터넷이지만, 로컬 영역 네트워크(LAN), 메트로폴리탄 영역 네트워크(MAN), 광역 네트워크(WAN), 모바일 유선 또는 무선 네트워크, 개인 네트워크 또는 가상 사설 네트워크를 포함하지만 이에 제한되는 것은 아닌 임의의 네트워크일 수 있다.
미디어 소스(120)는 미디어 아이템들을 사용자 디바이스들(100)에 제공하는 하나 이상의 컴퓨터 서버들을 포함한다. 일부 실시예들에서, 미디어 소스(120)는 비디오 스트리밍 웹사이트(예를 들어, YouTube®)일 수 있다. 미디어 아이템들은 상이한 포맷들(예를 들어, 비디오 미디어 아이템들 또는 오디오 미디어 아이템들)일 수 있다. 비디오 미디어 아이템은 영상 성분 및 오디오 성분을 포함한다. 비디오 미디어 아이템은, 예를 들어, 비디오 파일 및/또는 그 일부일 수 있다. 오디오 미디어 아이템은 오디오 성분을 포함하지만 영상 성분을 포함하지는 않는다. 오디오 미디어 아이템은, 예를 들어, 오디오 파일 및/또는 그 일부일 수 있다. 동일한 오디오 성분을 갖는 비디오 미디어 아이템 및 오디오 미디어 아이템은 대응하는 미디어 아이템들로 지칭된다. 예를 들어, 영화 "X"의 비디오 미디어 아이템은 영화 "X"에 대한 오디오 미디어 아이템의 형태인 대응하는 미디어 아이템을 가질 수 있다. 대응하는 미디어 아이템들의 오디오 성분은 동일하여, 시간 n에서 비디오 미디어 아이템의 오디오 성분은 시간 n에서 대응하는 오디오 미디어 아이템의 오디오 성분과 동일하다. 미디어 소스(120)는 대응하는 미디어 아이템들과 연관된 미디어 식별자들에 대한 다양한 미디어 아이템들의 맵핑을 포함할 수 있다.
미디어 소스(120)는 미디어 아이템들에 관한 정보를 유지한다. 미디어 아이템에 관한 정보는 예를 들어, 미디어 아이템 어드레스, 미디어 아이템 식별자, 대응하는 미디어 아이템에 대한 미디어 아이템 식별자, 컨텐츠와 연관된 메타데이터, 또는 이들의 일부 조합을 포함할 수 있다. 미디어 아이템 어드레스는, 미디어 아이템이 다운로드될 수 있는 어드레스, 스트리밍될 수 있는 어드레스, 또는 이들의 일부 조합일 수 있다. 미디어 아이템 식별자는 미디어 아이템을 고유하게 식별하는 식별자이다. 메타데이터는 컨텐츠의 상이한 양태들을 설명한다. 메타데이터는, 예를 들어, 저작자, 공개일, 리뷰, 장르 정보, 발행자, 등급, 미디어 아이템 식별자, 미디어 아이템에 관한 일부 다른 정보, 또는 이들의 일부 조합을 포함할 수 있다. 추가적으로, 미디어 소스(120)가 미디어 아이템을 스트리밍하고 있는 실시예들에서, 미디어 아이템은 스트리밍 메타데이터와 연관될 수 있다. 스트리밍 메타데이터는 미디어 아이템을 스트리밍하는 것과 연관된 다양한 특성들을 설명한다. 스트리밍 메타데이터는, 예를 들어, 미디어 아이템을 스트리밍하기 위해 요구되는 추정된 최소 대역폭, 대응하는 미디어 아이템을 스트리밍하기 위해 요구되는 추정된 최소 대역폭, HTTP 라이브 스트리밍(HLS) 플레이리스트, 또는 이들의 일부 조합을 포함할 수 있다.
사용자 디바이스(100)로부터 수신된 요청들에 대한 응답으로, 미디어 소스(120)는 요청된 미디어 아이템, 및 요청된 미디어 아이템에 관한 정보의 일부 또는 전부를 사용자 디바이스(100)에 제공한다. 일부 실시예들에서, 미디어 소스(120)는 요청된 미디어 아이템을 사용자 디바이스(100)에 스트리밍한다. 예를 들어, 미디어 소스(120)는 비디오 미디어 아이템 및/또는 대응하는 오디오 미디어 아이템을 사용자 디바이스(100)에 스트리밍할 수 있다. 미디어 소스(120)는 컨텐츠를 네트워크(110)를 통해 사용자 디바이스(100)에 직접 제공할 수 있다.
사용자 디바이스(100)는, 사용자가 오디오 및/또는 비디오 데이터를 소비하도록 허용하는 컴퓨터 프로그램 모듈들, 예를 들어, 웹 브라우저, 전자 책 판독기, 미디어 플레이어 또는 다른 클라이언트 애플리케이션을 실행하는 컴퓨팅 디바이스들이다. 사용자 디바이스(100)는, 예를 들어, 개인용 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 랩탑 컴퓨터, 전용 e-판독기, 또는 네트워킹된 텔레비전 또는 셋탑 박스와 같은 다른 타입의 네트워크-가능 디바이스일 수 있다.
사용자 디바이스(100)는 일 실시예에서, 미디어 데이터베이스(130), 사용자 인터페이스(155), 비디오 미디어 플레이어(140), 오디오 미디어 플레이어(150) 및 플레이어 제어기 모듈(160)을 포함한다. 일 실시예에서, 이러한 엔티티들은 사용자 디바이스(100) 상에서 실행되는 소프트웨어 애플리케이션 모듈이다. 예를 들어, 모듈(130, 140, 150 및 160)은 스마트 폰 상에서 실행되는 스마트 폰 애플리케이션에 통합될 수 있다.
미디어 데이터베이스(130)는 미디어 아이템들 및 미디어 아이템들에 관한 임의의 정보를 저장한다. 일부 실시예들에서, 미디어 데이터베이스(130)는 비디오 미디어 플레이어(140) 및/또는 오디오 미디어 플레이어(150)를 통해 사용자에게 제시될 수 있은 대응하는 미디어 아이템들을 저장할 수 있다.
비디오 미디어 플레이어(140)는 사용자 인터페이스(155) 상의 인터페이스를 통해 사용자 디바이스(100)를 동작시키는 사용자에 의해 요청된 비디오 미디어 아이템들을 제시한다. 비디오 미디어 플레이어(140)는, 예를 들어, 미디어 식별자 또는 미디어 아이템 메타데이터를 사용하여 미디어 소스(120) 및/또는 비디오 소매 업체들, 라이브러리들과 같은 다른 소스들로부터 또는 미디어 데이터베이스(130)로부터 요청된 비디오 미디어 아이템을 검색(및/또는 스트리밍)한다. 비디오 미디어 플레이어(140)는 검색된 비디오 미디어 아이템을 사용자에게 제시한다. 일부 실시예들에서, 비디오 미디어 플레이어(140)는, 검색된 비디오 미디어 아이템이, 예를 들어, 미디어 소스(120) 또는 일부 다른 소스로부터 네트워크(110)를 통해 스트리밍될 때, 검색된 비디오 미디어 아이템을 제시한다. 추가적으로, 플레이어 제어기 모듈(160)로부터 수신된 명령어들(즉, 도 3에 대해 아래에서 설명되는 스위치 커맨드들)에 대한 응답으로, 비디오 미디어 플레이어(140)는, 비디오 미디어 플레이어(140)에 의해 제시되고 있는 비디오 미디어 아이템을 뮤팅시킬 수 있거나, 비디오 미디어 플레이어(140)에 의해 제시되고 있는 비디오 미디어 아이템의 재생을 중지할 수 있거나, 플레이어 제어기 모듈(160)로부터 수신된 동기화 포인트에서 비디오 미디어 아이템 또는 비디오 미디어 아이템의 일부의 재생을 시작할 수 있거나, 비디오 미디어 플레이어(140)를 로딩할 수 있거나, 비디오 미디어 플레이어(140)를 닫을 수 있거나, 비디오 미디어 아이템 및/또는 비디오 미디어 아이템의 일부를 검색(및/또는 스트리밍)할 수 있거나, 이들의 일부 조합을 행할 수 있다.
오디오 미디어 플레이어(150)는, 사용자 인터페이스(155) 상의 인터페이스를 통해 사용자 디바이스(100)를 동작시키는 사용자에 의해 요청된 오디오 미디어 아이템들을 제시하는 미디어 플레이어이다. 오디오 미디어 플레이어(150)는, 예를 들어, 미디어 식별자 또는 미디어 아이템 메타데이터를 사용하여 미디어 소스(120) 및/또는 오디오 소매 업체들, 라이브러리들과 같은 다른 소스들로부터 또는 미디어 데이터베이스(130)로부터 요청된 오디오 미디어 아이템을 검색(및/또는 스트리밍)한다. 오디오 미디어 플레이어(150)는 검색된 오디오 미디어 아이템을 사용자에게 제시한다. 일부 실시예들에서, 오디오 미디어 플레이어(150)는, 검색된 오디오 미디어 아이템이, 예를 들어, 미디어 소스(120) 또는 일부 다른 소스로부터 네트워크(110)를 통해 스트리밍될 때, 검색된 오디오 미디어 아이템을 제시한다. 추가적으로, 플레이어 제어기 모듈(160)로부터의 명령어들(예를 들어, 도 3에 대해 아래에서 설명되는 스위치 커맨드들)에 대한 응답으로, 오디오 미디어 플레이어(150)는, 사용자 디바이스(100)에 의해 제시되고 있는 오디오 미디어 아이템을 뮤팅시킬 수 있거나, 오디오 미디어 플레이어(150)에 의해 제시되고 있는 오디오 미디어 아이템의 재생을 중지할 수 있거나, 플레이어 제어기 모듈(160)로부터 수신된 동기화 포인트에서 오디오 미디어 아이템 또는 오디오 미디어 아이템(140)의 일부의 재생을 시작할 수 있거나, 오디오 미디어 플레이어(150)를 로딩할 수 있거나, 오디오 미디어 플레이어(150)를 닫을 수 있거나, 오디오 미디어 아이템 및/또는 오디오 미디어 아이템의 일부를 검색(및/또는 스트리밍)할 수 있거나, 이들의 일부 조합을 행할 수 있다. 대안적인 실시예들에서, 오디오 미디어 플레이어(150)는, 비디오 미디어 플레이어(140)의 하나 이상의 특성들을 갖는 오디오/비디오 미디어 플레이어로 대체될 수 있다. 예를 들어, 오디오/비디오 미디어 플레이어는 사용자 디바이스(100)를 통해 비디오 미디어 아이템들을 제시할 수 있다.
사용자 인터페이스(155)는, 사용자가 사용자 디바이스(100) 상의 하나 이상의 애플리케이션들, 네트워크(110)를 통한 다른 애플리케이션들 및/또는 엔티티들, 또는 이들의 일부 조합과 상호작용할 수 있게 한다. 사용자 인터페이스(155)는, 사용자가 예를 들어, 비디오 미디어 플레이어(140) 및/또는 오디오 미디어 플레이어(150)와 상호작용하게 하는 하나 이상의 그래픽 및/또는 텍스트 인터페이스들을 사용자에게 제시한다. 예를 들어, 사용자는, 사용자 인터페이스(155)를 사용하여 비디오 미디어 플레이어(140)에 액세스하여, 미디어 소스(120) 및/또는 미디어 데이터베이스(130)로부터 비디오 미디어 아이템을 요청할 수 있다.
사용자 인터페이스(155)는, 하나 이상의 인터페이스들이 사용자에게 어떻게 디스플레이되는지를 사용자가 조정할 수 있게 한다. 예를 들어, 사용자 인터페이스 모듈(155)은, 사용자가 애플리케이션(예를 들어, 미디어 비디오 플레이어(140))에 대한 인터페이스를 최대화하는 것, 최소화하는 것, 리사이징하는 것, 배치하는 것 또는 이들의 일부 조합을 허용할 수 있다. 추가적으로, 사용자 인터페이스 모듈(155)은, 사용자가 인터페이스를 다른 애플리케이션들에 대한 하나 이상의 인터페이스들로 오버레이하도록 허용할 수 있다. 예를 들어, 사용자 인터페이스(155)는, 비디오 미디어 아이템의 영상 성분의 일부 또는 전부가 사용자에게 가시적이 되지 않도록, 비디오 미디어 아이템을 디스플레이하고 있는 비디오 미디어 플레이어(140)에 대한 인터페이스를 다른 인터페이스(또는 일부 다른 그래픽)로 오버레이할 수 있다. 추가적으로, 일부 실시예들에서, 사용자 인터페이스(155)는, 사용자가 사용자 디바이스(100)를 '잠금'하게 할 수 있다. '잠금된' 사용자 디바이스(100)는 미디어 아이템의 오디오 성분을 제시할 수 있지만, 비디오 미디어 아이템의 영상 성분의 제시를 방지할 수 있다.
일부 실시예들에서, 사용자 인터페이스(155)는 비디오 미디어 플레이어(140) 및 오디오 미디어 플레이어(150)와 연관된 인터페이스를 사용하여 디스플레이 정보를 생성한다. 디스플레이 정보는 미디어 플레이어들의 인터페이스가 사용자에게 어떻게 제공되고 있는지를 설명한다. 디스플레이 정보는, 예를 들어, 미디어 아이템을 제시하는 미디어 플레이어를 식별하는 정보, 인터페이스가 최소화되는지 여부를 설명하는 정보, 인터페이스가 일부 다른 그래픽으로 오버레이되었는지 여부를 설명하는 정보, 사용자에게 가시적이 아닌 디스플레이되고 있는 미디어 비디오 아이템의 영상 성분의 일부를 설명하는 정보, 사용자 디바이스(100)가 '잠금되었는지' 여부를 설명하는 정보, 또는 이들의 일부 조합을 포함할 수 있다. 사용자 인터페이스(155)는 디스플레이 정보를 플레이어 제어기 모듈(160)에 제공한다. 일부 실시예들에서, 사용자 인터페이스(155)는 디스플레이 정보에 변화가 존재할 때마다 플레이어 제어기 모듈(160)에 디스플레이 정보를 제공한다.
플레이어 제어기 모듈(160)은 디스플레이 정보를 사용하여 액티브 미디어 플레이어와 연관된 디스플레이 모드에서의 변화를 검출하도록 구성된다. 액티브 미디어 플레이어는 미디어 아이템을 제시하는 미디어 플레이어이다. 예를 들어, 액티브 미디어 플레이어는 사용자 디바이스(100)의 사용자 인터페이스에 비디오 미디어 아이템을 제시하는 비디오 미디어 플레이어(140), 또는 예를 들어, 클라이언트 디바이스(100)의 스피커 또는 헤드폰 잭을 통해 오디오 미디어 아이템을 제시하는 오디오 미디어 플레이어(150)일 수 있다. 도 3에 대해 아래에서 상세히 설명되는 디스플레이 모드는, 미디어 플레이어가 사용자 인터페이스(135)의 전경에 있는지(예를 들어, 전경 모드) 또는 배경에 있는지(예를 들어, 배경 모드) 여부를 설명한다. 비디오 미디어 플레이어(140)에 의해 제시되고 있는 미디어 아이템의 영상 성분이 사용자에게 디스플레이되지 않는 경우, 비디오 미디어 아이템은 배경 모드에 있다. 반대로, 영상 성분의 일부가 사용자에게 가시적이 되도록 디스플레이되고 있으면, 비디오 미디어 플레이어(150)는 전경 모드에 있다.
플레이어 제어기 모듈(160)은 디스플레이 정보를 사용하여 미디어 플레이어와 연관된 디스플레이 모드를 결정한다. 플레이어 제어기 모듈(160)은 결정된 디스플레이 모드를 미디어 플레이어와 마지막으로 연관된 디스플레이 모드와 비교함으로써 미디어 플레이어의 디스플레이 모드에서의 변화를 검출한다. 디스플레이 모드가 동일하면 어떠한 변화도 발생하지 않고, 반대로, 디스플레이 모드들이 상이하면 디스플레이 모드에서의 변화가 발생하였다. 예를 들어, 플레이어 제어기 모듈(160)은, 디스플레이 정보를 사용하여 비디오 미디어 플레이어(140)가 전경에 있다고 결정할 수 있다. 그리고 어떠한 추후의 시간에, 플레이어 제어기 모듈(140)은 업데이트된 디스플레이 정보를 수신할 수 있고, 업데이트된 디스플레이 정보로부터, 제시되고 있는 비디오 미디어 아이템의 전체 영상 성분이 사용자에게 제시되고 있지 않다는 것을 결정할 수 있다. 이 변화에 기초하여, 플레이어 제어기 모듈(160)은, 비디오 미디어 플레이어(140)가 배경 모드로 배치된 것으로 결정한다. 플레이어 제어기 모듈(160)은 사용자 인터페이스(155)로부터 디스플레이 정보를 요청할 수 있다.
플레이어 제어기 모듈(160)은, 액티브 미디어 플레이어에 의한 미디어 아이템의 제시가 액티브 미디어 플레이어와 연관된 디스플레이 모드에서의 변화들에 부분적으로 기초하여 상이한 미디어 플레이어에 의한 대응하는 미디어 아이템의 제시로 전환되어야 하는지 여부를 결정한다. 액티브 미디어 플레이어가 비디오 미디어 플레이어(140)이고, 비디오 미디어 플레이어(140)가 배경 모드에 배치되어 있는 다양한 실시예들에서, 플레이어 제어기 모듈(160)은, 비디오 미디어 아이템의 제시가 보조 미디어 플레이어에 의한 대응하는 오디오 미디어 아이템의 제시로 전환되어야 한다고 결정한다. 보조 미디어 플레이어는 비디오 미디어 아이템에 대응하는 오디오 미디어 아이템을 재생하는 미디어 플레이어이다. 보조 미디어 플레이어는, 예를 들어, 오디오 미디어 플레이어(150), 오디오/비디오 플레이어, 또는 오디오 미디어 아이템을 재생/스트리밍할 수 있는 일부 다른 미디어 플레이어일 수 있다. 유사하게, 액티브 미디어 플레이어가 보조 미디어 플레이어이고, 전경 모드에 배치되어 있으면, 플레이어 제어기 모듈(160)은, 비디오 미디어 아이템의 제시가 비디오 미디어 플레이어(140)에 의한 대응하는 비디오 미디어 아이템의 제시로 전환되어야 한다고 결정한다. 일부 실시예들에서, 전환은, 액티브 미디어 플레이어에 의한 미디어 아이템의 재생이 특정 포인트에서 중단되고, 대응하는 미디어 아이템의 재생이 그 특정 포인트에서 시작하여, 그에 따라 자신들 각각의 미디어 아이템들의 오디오 성분들을 재생하고 있는 미디어 플레이어들 사이의 전환이 사용자에게 투명하게 되도록 발생한다. 플레이어 제어기 모듈(160)이 전환 포인트의 위치를 어떻게 결정하는지는 도 3에 대해 아래에서 논의된다.
추가적으로, 일부 실시예들에서, 미디어 아이템의 제시가 종료되기까지 남은 시간(예를 들어, 1 초가 남음)이 어떠한 임계 시간 값 미만이면, 플레이어 제어기 모듈(160)은, 미디어 아이템을 제시하는 미디어 플레이어가 미디어 아이템의 제시를 완료하도록 허용한다. 따라서, 플레이어 제어기 모듈(160)은, 예를 들어, 전환이 발생하기에 충분한 시간이 존재하지 않는 경우에는, (그렇지 않으면 전환했을 것이지만) 미디어 플레이어들 사이를 전환하지 않을 수 있다(예를 들어, 액티브 미디어 플레이어가 비디오 미디어 플레이어(140)이고 비디오 미디어 플레이어(140)가 배경 모드에 배치되어 있는 경우).
플레이어 제어기 모듈(160)은, 미디어 플레이어들 중 어떠한 미디어 플레이어 사이의 전환이 액티브가 되게 하는(즉, 사용자에게 미디어 아이템을 제시하는), 비디오 미디어 플레이어(140) 및 오디오 미디어 플레이어(150)에 대한 명령들을 생성한다. 액티브 미디어 플레이어가 비디오 미디어 플레이어(140)이고, 어떠한 시간에 배경 모드에 배치되는(예를 들어, 사용자가 사용자 디바이스(100)를 잠금하는) 실시예들에서, 플레이어 제어기 모듈(160)은 비디오 미디어 플레이어(140) 및 오디오 미디어 플레이어(150)에 대한 명령들을 생성한다. 도 3에 대해 아래에서 상세히 논의되는 바와 같이, 명령들은, 예를 들어, 오디오 미디어 플레이어(150)를 로딩하고(아직 열려 있지 않은 경우), 비디오 미디어 플레이어(140) 상의 비디오 미디어 아이템의 재생을 오디오 미디어 플레이어(150) 상의 대응하는 오디오 미디어 아이템으로 전환한다. 어떠한 추후 포인트에서, 액티브 오디오 미디어 플레이어(150)가 전경이 되면(예를 들어, 사용자 디바이스(100)가 잠금해제되면), 플레이어 제어기 모듈(160)은, 비디오 미디어 플레이어(150)를 로딩하고(아직 열려 있지 않은 경우), 오디오 미디어 플레이어(150) 상의 대응하는 오디오 미디어 아이템의 재생을 비디오 미디어 플레이어(140) 상의 비디오 미디어 아이템으로 전환하는 비디오 미디어 플레이어(140) 및 오디오 미디어 플레이어(150)에 대한 명령들을 생성한다. 따라서, 플레이어 제어기 모듈(160)은, 비디오 미디어 플레이어(140)가 배경 모드에 배치된 경우 오직 오디오 성분만이 사용자에게 제시되도록 대역폭 소비를 감소시킬 수 있다.
반대로, 액티브 미디어 플레이어가 오디오 미디어 플레이어(150)이고, 어떠한 시점에 배경에 배치되는 실시예들에서, 플레이어 제어기 모듈(160)은 단지 오디오 미디어 아이템을 계속 제시한다. 유사하게, 추후의 어떠한 시점에, 액티브 오디오 미디어 플레이어(150)가 전경이 되면, 오디오 미디어 플레이어(150)는 오디오 미디어 아이템을 계속 제시한다.
일부 실시예들에서, 플레이어 제어기 모듈(160)은, 오디오 미디어 아이템의 재생이 시작된 후(즉, 오디오 미디어 플레이어(150)가 액티브 미디어 플레이어가 된 후) 비디오 미디어 플레이어(140)를 닫게 하는, 또는 비디오 미디어 아이템의 재생이 시작된 후(즉, 비디오 미디어 플레이어(140)가 액티브 미디어 플레이어가 된 후) 오디오 미디어 아이템 플레이어(150)를 닫게 하는 명령들을 생성한다. 다수의 플레이어들이 열려 있는 시간 및/또는 스트리밍 데이터의 양을 최소화하는 것은 사용자 디바이스(100) 및/또는 미디어 소스(120)의 자원들을 보존하는 것을 돕는다.
따라서, 본원에 개시된 시스템은, 사용자에게 실제로 제시되고 있는 미디어 아이템의 부분들과 대역폭 요건들을 매칭시키는 방식으로 미디어 플레이어들 사이에서 동적으로 스위칭할 수 있다. 비디오 미디어 아이템을 제시하는 미디어 플레이어가 배경 모드에 있는 경우, 미디어 아이템을 오디오 파일로서 검색 및 제공하는 미디어 플레이어로 스위칭함으로써, 시스템은 대역폭 요건들을 효과적으로 감소시키는 것, 사용자 디바이스(100) 자원 요건들을 감소시키는 것, 미디어 소스(120)의 자원들을 효율적으로 이용하는 것 또는 이들의 일부 조합을 행할 수 있다. 또한, 배경 모드에 있는 동안 비디오 미디어 플레이어(140)를 닫음으로써, 사용자 디바이스(100)는, 미디어 플레이어들이 배경 모드에 있는 동안 사용자 디바이스(100)의 자원 요건들을 추가로 감소시킬 수 있다.
이제, 앞서 논의된 액티브 미디어 플레이어와 연관된 디스플레이 모드에 대한 검출된 변화들에 기초한 미디어 플레이어 스위칭의 구현에 대해 논의하면, 도 2는 도 1에 도시된 엔티티들을 구현하기 위한 예시적인 컴퓨터(200)를 예시하는 블록도이다. 컴퓨터(200)는 칩셋(204)에 커플링된 적어도 하나의 프로세서(202)를 포함한다. 칩셋(204)은 메모리 제어기 허브(220) 및 입력/출력(I/O) 제어기 허브(222)를 포함한다. 메모리(206) 및 그래픽 어댑터(212)는 메모리 제어기 허브(220)에 커플링되고, 디스플레이(218)는 그래픽 어댑터(212)에 커플링된다. 저장 디바이스(208), 입력 디바이스(214) 및 네트워크 어댑터(216)는 I/O 제어기 허브(222)에 커플링된다. 컴퓨터(200)의 다른 실시예들은 상이한 아키텍처들을 갖는다.
저장 디바이스(208)는 하드 드라이브, CD-ROM(compact disk read-only memory), DVD, 또는 솔리드 스테이트 메모리 디바이스와 같은 비일시적 컴퓨터 판독가능 저장 매체이다. 메모리(206)는 프로세서(202)에 의해 사용되는 명령어들 및 데이터를 유지한다. 입력 디바이스(214)는 마우스, 트랙볼 또는 다른 타입의 포인팅 디바이스, 키보드, 컴퓨터(200)에 데이터를 입력하기 위한 일부 다른 디바이스 또는 이들의 일부 조합이다. 그래픽 어댑터(212)는 이미지들 및 다른 정보를 디스플레이(218) 상에 디스플레이한다. 네트워크 어댑터(216)는 컴퓨터(200)를 하나 이상의 컴퓨터 네트워크들에 커플링시킨다.
컴퓨터(200)는 본원에 설명된 기능을 제공하기 위한 컴퓨터 프로그램 모듈들을 실행하도록 구성된다. 본원에서 사용되는 바와 같이, 용어 "모듈"은 특정 기능을 제공하기 위해 사용되는 컴퓨터 프로그램 로직을 지칭한다. 따라서, 모듈은 하드웨어, 펌웨어 및/또는 소프트웨어로 구현될 수 있다. 일 실시예에서, 프로그램 모듈들은 저장 디바이스(208) 상에 저장되고, 메모리(206)에 로딩되고, 프로세서(202)에 의해 실행된다.
도 1의 엔티티들에 의해 사용되는 컴퓨터들(200)의 타입들은 실시예 및 엔티티에 의해 요구되는 프로세싱 능력에 따라 변할 수 있다. 예를 들어, 사용자 디바이스(100)는 함께 동작하는 하나 이상의 서버들과 상호작용하여 본원에 설명된 기능을 제공할 수 있다. 추가적으로, 일부 실시예들에서, 플레이어 제어기 모듈(160)의 기능의 일부 또는 전부는 사용자 디바이스(100)와 통신하는 하나 이상의 서버들에 의해 수행될 수 있다. 컴퓨터들(200)은, 입력 디바이스들(214), 그래픽 어댑터들(212) 및 디스플레이들(218)과 같은 앞서 설명된 컴포넌트들 중 일부가 없을 수 있다.
도 3은 일 실시예에 따른 사용자 디바이스(100)의 플레이어 제어기 모듈(160) 내의 모듈들의 상세도를 예시하는 블록도이다. 플레이어 제어기 모듈(160)의 몇몇 실시예들은 본원에서 설명된 것과는 상이한 모듈들을 갖는다. 유사하게, 기능들은 본원에서 설명되는 것과는 상이한 방식으로 모듈 사이에 분산될 수 있다. 플레이어 제어기 모듈(160)은 디스플레이 모드 모듈(310), 플레이어 식별 모듈(320), 대역폭 추정기 모듈(330) 및 동기화 모듈(340)과 같은 모듈들을 포함한다.
디스플레이 모드 모듈은 사용자 인터페이스(155)로부터 수신된 디스플레이 정보를 사용하여 비디오 미디어 플레이어(140) 및/또는 오디오 미디어 플레이어(150)에 대한 디스플레이 모드를 결정한다. 비디오 미디어 플레이어(140)에 의해 제시되고 있는 미디어 아이템의 영상 성분이 사용자에게 디스플레이되지 않는 것으로 디스플레이 정보가 표시하면, 비디오 미디어 플레이어(140)는 배경 모드와 연관된다. 예를 들어, 비디오 미디어 플레이어(140)가 최소화된 것, 비디오 미디어 아이템의 영상 성분 모두가 일부 다른 그래픽(예를 들어, 다른 애플리케이션, 메뉴, 이미지 등)으로 덮여 있는 것, 비디오 미디어 아이템의 오디오 성분이 제시되지만 영상 성분은 제시되지 않도록 사용자 디바이스(100)가 '잠금'된 것, 미디어 아이템의 오디오 성분은 제시되지만 비디오 아이템의 영상 성분은 제시되지 않는 일부 다른 조건이 발생하는 것 등을 디스플레이 정보가 표시하면, 비디오 미디어 플레이어(140)는 배경 모드와 연관된다. 미디어 아이템의 영상 성분의 일부 또는 전부가 사용자에게 제시되고 있는 것을 디스플레이 정보가 표시하면, 비디오 미디어 플레이어(140)는 전경 모드와 연관된다. 반대로, 오디오 플레이어(150)가 최소화된 것, 일부 다른 그래픽(예를 들어, 다른 애플리케이션, 메뉴, 이미지 등)으로 덮여 있는 것, 사용자 디바이스(100)가 '잠금'된 것 등을 디스플레이 정보가 표시하면, 오디오 플레이어(150)는 배경 모드와 연관된다. 오디오 미디어 플레이어(150)의 일부 또는 전부가 사용자에게 제시되면, 오디오 미디어 플레이어(150)는 전경 모드와 연관된다. 디스플레이 모드 모듈(310)은, 액티브 미디어 플레이어에 대한 디스플레이 모드 변화가 발생하면, 플레이어 제어기 모듈(160) 내의 하나 이상의 다른 모듈들에 통지한다.
디스플레이 모드 모듈(310)은 사용자 인터페이스(155)로부터 수신된 디스플레이 정보를 사용하여 미디어 플레이어들과 연관된 디스플레이 모드들에 대한 변화들을 식별한다. 디스플레이 모드 모듈(310)은 액티브 미디어 플레이어들과 연관된 디스플레이 모드들을 모니터링한다. 디스플레이 모드 모듈(310)은 각각의 미디어 플레이어에 대한 디스플레이 모드들을 저장한다. 어느 시점에서, 디스플레이 모드 모듈(310)은 업데이트된 디스플레이 정보를 수신한다. 디스플레이 모드 모듈(310)은 업데이트된 미디어 정보를 사용하여 각각의 미디어 플레이어에 대한 디스플레이 모드를 결정한다. 디스플레이 모드 모듈(310)은 결정된 디스플레이 모드들을 미디어 플레이어들과 마지막으로 연관된 디스플레이 모드들과 비교함으로써 미디어 플레이어의 디스플레이 모드들에서의 변화들을 검출한다. 주어진 미디어 플레이어에 대해, 디스플레이 모드가 동일하면 어떠한 변화도 발생하지 않고, 반대로, 디스플레이 모드들이 상이하면 디스플레이 모드에서의 변화가 발생하였다.
플레이어 식별 모듈(320)은 액티브 미디어 플레이어와 연관된 디스플레이 모드의 검출된 변화들에 기초하여 제2 미디어 플레이어를 식별한다. 플레이어 식별 모듈(320)은, 액티브 미디어 플레이어에 의한 미디어 아이템의 제시가 액티브 미디어 플레이어와 연관된 디스플레이 모드에서의 변화들에 부분적으로 기초하여 상이한 미디어 플레이어에 의한 대응하는 미디어 아이템의 제시로 전환되어야 하는지 여부를 결정한다. 액티브 미디어 플레이어가 배경 모드에 배치된 비디오 미디어 플레이어(140)인 경우, 플레이어 식별 모듈(320)은 대응하는 오디오 미디어 아이템의 제시를 위해 보조 미디어 플레이어(예를 들어, 오디오 미디어 플레이어(150))를 식별한다. 유사하게, 액티브 미디어 플레이어가 전경 모드에 배치된 보조 미디어 플레이어인 경우, 플레이어 식별 모듈(320)은 대응하는 비디오 미디어 아이템의 제시를 위해 비디오 미디어 플레이어(140)를 식별한다.
대역폭 추정기 모듈(330)은 액티브 미디어 플레이어에 의해 스트리밍되고 있는 미디어 아이템의 대역폭을 추정하고 그리고/또는 대응하는 미디어 아이템을 스트리밍하기 위해 식별된 미디어 플레이어에 대해 요구되는 대역폭을 추정한다. 대역폭 추정기 모듈(330)은, 예를 들어, 미디어 소스(130)로부터 데이터를 요청하는 것과 요청된 데이터가 사용자 디바이스(100)에 의해 수신되는 시간 사이의 시간 지연을 측정함으로써, 미디어 아이템을 스트리밍하는데 사용되는 대역폭을 추정할 수 있다. 대역폭 추정기 모듈(330)은, 미디어 아이템을 스트리밍하기 위한 추정된 대역폭 및/또는 대응하는 미디어 아이템을 동기화 모듈(340)로 스트리밍하기 위한 추정된 대역폭 중 하나 또는 둘 모두를 제공한다. 대역폭 추정기 모듈(340)은 또한, 비디오 미디어 아이템을 스트리밍하기 위한 추정된 최소 대역폭, 및 미디어 아이템과 연관된 스트리밍 메타데이터를 사용하여 대응하는 미디어 아이템을 스트리밍하기 위해 요구되는 추정된 최소 대역폭을 추출한다. 대역폭 추정기 모듈(340)은 추정된 최소 대역폭들을 동기화 모듈(340)에 제공할 수 있다.
동기화 포인트는, 제1 포맷으로 미디어 아이템을 제시하는 제1 미디어 플레이어가 미디어 아이템을 제시하는 것을 중단하고, 그와 동시에, 제2 미디어 플레이어가 대응하는 위치에서 대응하는 미디어 아이템을 제시하는 것을 시작하는, 미디어 아이템의 스트림에서의 위치이다. 본질적으로, 이것은, 제2 미디어 플레이어가 액티브 미디어 플레이어가 되는, 미디어 아이템의 스트림에서의 포인트이다. 미디어 아이템들에서의 대응하는 위치들은, 비디오 미디어 아이템의 오디오 성분이 대응하는 오디오 미디어 아이템의 오디오 성분과 동일한 위치들이다. 예를 들어, 일부 예들에서, 대응하는 미디어 아이템들의 오디오 성분은 시간상 동기식이고, 이것은, 비디오 미디어 아이템의 1 분에 발생하는 동기화 포인트가 오디오 미디어 아이템의 1 분의 대응하는 위치를 가짐을 의미한다.
일반적으로, 비디오 미디어 아이템을 스트림라이닝(streamlining)/다운로드하는 것은 오디오 미디어 아이템을 스트리밍/다운로드하는 것보다 훨씬 더 큰 대역폭을 사용한다. 따라서, 비디오 미디어 아이템을 스트리밍하고 있는 비디오 미디어 플레이어(140)로부터 대응하는 오디오 미디어 아이템을 스트리밍하는 오디오 미디어 플레이어(150)로 스위칭하는 것은 일반적으로 더 낮은 대역폭 요건들을 도출할 것이다. 유사하게, 오디오 미디어 아이템을 스트리밍하고 있는 오디오 미디어 플레이어(150)로부터 대응하는 비디오 미디어 아이템을 스트리밍하는 비디오 미디어 플레이어(140)로 스위칭하는 것은 일반적으로 더 높은 대역폭 요건들을 도출할 것이다.
동기화 모듈(340)은 대역폭 추정기(330)로부터 수신된 하나 이상의 추정된 대역폭들에 부분적으로 기초하여 동기화 포인트를 생성한다. 일부 실시예들에서, 동기화 모듈(340)은 하나 이상의 추정된 대역폭들 및 룩업 테이블을 사용하여 동기화 시간 값을 식별한다. 룩업 테이블은 대역폭 값들을 다양한 동기화 시간 값들에 맵핑하는 정보를 포함할 수 있다. 동기화 시간 값은, 대응하는 미디어 아이템이 연관된 미디어 플레이어에 의해 제시를 위해 준비되는 시간(예를 들어, 미디어 아이템 또는 대응하는 미디어 아이템을 제시하는 것을 시작하기에 충분한 데이터를 버퍼링하는데 소요되는 시간)의 추정된 양이다. 예를 들어, 룩업 테이블은 높은 추정된 대역폭을 짧은 동기화 시간 값(예를 들어, 100 ms)으로 맵핑하고, 낮은 추정된 대역폭을 비교적 긴 동기화 시간 값(예를 들어, 1100 ms)으로 맵핑할 수 있다. 추가적으로, 일부 실시예들에서, 동기화 시간들은 하나 이상의 레이턴시 시간들을 설명할 수 있다. 레이턴시 시간은 특정 프로세스가 발생할 추정된 시간 값이다. 레이턴시 시간은, 예를 들어, 대응하는 미디어 아이템을 제시하기 위해 미디어 플레이어를 로딩하기 위한 추정된 시간 값, 미디어 아이템과 연관된 미디어 스택의 셋업을 위한 추정된 시간 값; 미디어 아이템과 연관된 미디어 스택의 분해(teardown)를 위한 추정된 시간 값; 스트리밍 메타데이터를 검색하기 위한 추정된 시간 값; 미디어 소스(120)에 대한 새로운 HTTP 접속을 설정하기 위한 추정된 시간 값, 또는 이들의 일부 조합일 수 있다. 대안적인 실시예들에서, 동기화 모듈(340)은, 비디오 미디어 플레이어(140)가 오디오 미디어 플레이어(150)로 스위칭되는지 또는 그 반대인지 여부에 부분적으로 기초하는 고정된 동기화 시간 값들을 사용한다. 예를 들어, 오디오 미디어 플레이어(150)가 배경에 배치되는 경우보다 비디오 미디어 플레이어(140)가 배경에 배치되는 경우 더 낮은 동기화 시간 값이 사용될 것이다.
동기화 모듈(340)은 동기화 시간 값을 사용하여 동기화 포인트를 생성한다. 예를 들어, 100 ms의 동기화 값을 가정하면, 동기화 모듈(340)은 동기화 포인트가 생성된 시간으로부터 100 ms에 트리거링하는 동기화 포인트를 생성한다.
동기화 모듈(340)은 미디어 플레이어들을 제어하는 스위치 커맨드들을 생성한다. 구체적으로, 스위치 커맨드들은, 미디어 아이템을 제시하는 미디어 플레이어를, 대응하는 미디어 아이템을 제시하는 상이한 미디어 플레이어로 전환하는 것, 또는 그 반대를 용이하게 하는 명령들이다. 스위치 커맨드는, 예를 들어, 재생이 동기화 포인트에서 시작할 수 있도록 대응하는 미디어 아이템을 검색하도록 미디어 플레이어에 명령하는 것, 동기화 포인트에서 재생을 중단하도록 미디어 플레이어에 명령하는 것, 동기화 포인트에서 제시되고 있는 미디어 아이템을 뮤팅시키도록 액티브 미디어 플레이어에 명령하는 것, 미디어 플레이어를 닫는 것, 미디어 플레이어를 여는 것, 도달된 경우 1차 미디어 플레이어를 닫게 하는 타임 아웃 값을 제공하는 것, 또는 이들의 일부 조합일 수 있다. 예를 들어, 동기화 모듈(340)은, 액티브 미디어 플레이어가 동기화 포인트에서 스트리밍 비디오 미디어 아이템의 재생을 뮤팅시키는 것(재생을 뮤팅시키는 것은 재생을 중단하는 것보다 빠를 수 있음), 액티브 미디어 플레이어를 닫는 것, 보조 미디어 플레이어를 로딩하는 것, 비디오 미디어 플레이어(140)를 로딩하는 것, 보조 미디어 플레이어가 동기화 포인트에 대응하는 위치에서 대응하는 오디오 미디어 아이템의 재생을 시작하는 것, 비디오 미디어 플레이어(140)가 동기화 포인트에 대응하는 위치에서 대응하는 비디오 미디어 아이템의 재생을 시작하는 것 또는 이들의 일부 조합을 초래하는 스위치 커맨드들을 생성할 수 있다. 동기화 모듈(340)은 생성된 스위치 커맨드들을 비디오 미디어 플레이어(140) 및 오디오 미디어 플레이어(150)에 제공한다.
추가적으로, 일부 실시예들에서, 동기화 모듈(340)은, 어떠한 임계 시간 값이 미디어 아이템의 남은 시간보다 큰 경우 스위치 커맨드들을 생성하지 않는다. 남은 시간은 미디어 아이템의 제시가 완료될 때까지 남은 시간이다. 임계 시간 값은 미디어 플레이어들 사이의 전환이 발생하는 것에 대한 추정된 시간이다. 일부 실시예들에서, 동기화 모듈(340)은, 예를 들어 동기화 시간 값들, 스트리밍 메타데이터, 하나 이상의 레이턴시 시간들 또는 이들의 일부 조합에 기초하여 임계 시간 값을 계산하도록 구성된다. 예를 들어, 임계 값은 동기화 시간 값의 몇 퍼센티지(예를 들어, 50%)일 수 있다. 대안적인 실시예들에서, 임계 시간 값은 관리자에 의해 설정될 수 있다. 따라서, 플레이어 제어기 모듈(160)은, 예를 들어, 전환이 발생하기에 충분한 시간이 존재하지 않는 경우에는, (그렇지 않으면 전환했을 것이지만) 액티브 미디어 플레이어가 상이한 액티브 미디어 플레이어로 전환되게 하지 않을 수 있다(예를 들어, 액티브 미디어 플레이어가 비디오 미디어 플레이어(140)이고 비디오 미디어 플레이어(140)가 배경 모드에 배치되어 있는 경우).
일부 실시예들에서, 동기화 모듈(340)은 보조 미디어 플레이어의 동기화를 모니터링한다. 보조 미디어 플레이어가 동기화 포인트에서 대응하는 미디어 아이템의 재생을 시작하기에 충분한 양의 데이터를 버퍼링할 수 있으면, 동기화가 발생한다. 일부 실시예들에서, 동기화 모듈(340)은, 대응하는 미디어 아이템의 오디오 성분을 뮤팅시키도록 미디어 플레이어에 명령하는 스위치 커맨드를 생성할 수 있고, 동기화가 달성되는 경우, 제1 미디어 플레이어를 뮤팅시키는 동안 미디어 플레이어가 뮤팅되지 않게 하는 스위치 커맨드들을 생성한다. 일부 실시예들에서, 뮤팅/언뮤팅(unmuting) 대신에, 동기화 모듈(340)은, 미디어 아이템들의 제시를 교차 페이드(cross fade)하는 스위치 커맨드들을 생성할 수 있다(즉, 미디어 아이템의 볼륨을 뮤팅될 때까지 천천히 낮추면서, 대응하는 미디어 아이템의 볼륨을 어떤 임계 값까지 천천히 증가시킨다).
동기화 모듈(340)은, 예를 들어, 대응하는 미디어 아이템과 연관된 버퍼링된 데이터의 양, 미디어 아이템을 스트리밍하는 것과 연관된 대역폭, 대응하는 미디어 아이템을 스트리밍하는 것과 연관된 대역폭, 또는 이들의 일부 조합을 사용하여, 동기화가 발생할지 여부를 예측한다. 동기화가 발생하는 것으로 예측되지 않는 일부 실시예들에서, 동기화 모듈(340)은 장래의 더 먼 어떤 시점에서 새로운 동기화 포인트를 생성할 수 있고, 이를 미디어 플레이어들에 제공할 수 있다. 추가적으로, 일부 경우들에서, 동기화 모듈(340)은 1차 미디어 플레이어에 대한 스위치 커맨드에 타임 아웃 값을 포함할 수 있다. 타임 아웃 값은 도달되는 경우, 1차 미디어 플레이어가 미디어 아이템을 스트리밍하는 것을 중단시키고 닫음으로써, 보조 미디어 플레이어가 대응하는 미디어 아이템을 스트리밍하기 위한 대역폭을 확보하게 한다. 이것은, 비디오 미디어 아이템에 대해 이용가능한 대역폭이 제한되는 경우, 오디오 미디어 플레이어(150)로부터 비디오 미디어 플레이어(140)로 전환할 때 유용할 수 있다.
도 4는 일 실시예에 따라 사용자 디바이스(100) 상의 액티브 미디어 플레이어와 연관된 디스플레이 모드에 대한 검출된 변화들에 기초하여 미디어 플레이어들 사이에서 스위칭하는 프로세스(400)를 예시하는 흐름도이다. 일 실시예에서, 도 4의 프로세스는 사용자 디바이스(100)에 의해 수행된다. 다른 실시예들에서는, 다른 엔티티들이 프로세스의 단계들 중 일부 또는 전부를 수행할 수 있다. 유사하게, 실시예들은 상이한 및/또는 추가적인 단계들을 포함할 수 있거나 또는 상이한 순서들로 단계들을 수행할 수 있다.
사용자 디바이스(100)는 미디어 아이템을 제1 미디어 플레이어를 통해 사용자 디바이스(100)의 사용자에게 제1 포맷으로 제시한다(410). 예를 들어, 사용자 디바이스(100)는 비디오 미디어 플레이어(140)를 통해 사용자에게 비디오 미디어 아이템을 제시할 수 있고, 비디오 미디어 플레이어(140)는 전경 모드와 연관된다.
사용자 디바이스(100)는 제1 미디어 플레이어의 디스플레이 모드에서의 변화를 검출한다(420). 사용자 디바이스(100)는 미디어 플레이어들과 연관된 인터페이스들이 사용자에게 어떻게 디스플레이되고 있는지를 설명하는 디스플레이 정보를 (예를 들어, 사용자 인터페이스(155)를 통해) 생성할 수 있다. 사용자 디바이스(100)는 디스플레이 정보를 사용하여 미디어 플레이어들과 연관된 디스플레이 모드들에서의 변화들을 식별할 수 있다. 예를 들어, 디스플레이 정보는, 사용자가 사용자 디바이스(100)를 잠금한 것을 표시하여, 액티브 비디오 미디어 플레이어(140)가 배경 모드에 배치되게 할 수 있다.
사용자 디바이스(100)는 디스플레이 모드에서의 검출된 변화에 기초하여 제2 미디어 플레이어를 식별한다(430). 예를 들어, 액티브 미디어 플레이어가 배경 모드에 배치되어 있는 비디오 미디어 플레이어(140)이면, 사용자 디바이스(100)는 보조 미디어 플레이어를 제2 미디어 플레이어로 식별한다. 유사하게, 액티브 미디어 플레이어가 전경 모드에 배치되어 있는 보조 미디어 플레이어이면, 사용자 디바이스(100)는 비디오 미디어 플레이어(140)를 제2 미디어 플레이어로 식별한다.
사용자 디바이스(100)는 제2 미디어 플레이어를 로딩하고(440), 제2 미디어 플레이어는 대응하는 미디어 아이템을 제2 포맷으로 사용자에게 제시한다. 제2 미디어 플레이어가 보조 플레이어(예를 들어, 오디오 비디오 플레이어(150))인 경우, 제2 미디어 플레이어는 미디어 아이템에 대응하는 오디오 미디어 아이템을 제시하도록 구성된다. 반대로, 제2 미디어 플레이어가 비디오 미디어 플레이어(140)인 경우, 제2 미디어 플레이어는 미디어 아이템에 대응하는 비디오 미디어 아이템을 제시하도록 구성된다.
사용자 디바이스(100)는, 제1 미디어 플레이어를 통한 미디어 아이템의 제시를 중단하기 위한 미디어 아이템에서의 특정 위치, 및 제2 미디어 플레이어를 사용하여 대응하는 미디어 아이템의 제시를 시작하기 위한 대응하는 미디어 아이템에서의 대응하는 위치를 결정한다(450). 예를 들어, 사용자 디바이스(100)는 제1 및/또는 제2 미디어 아이템을 스트리밍하는 것과 연관된 대역폭을 추정할 수 있고, 추정된 대역폭들 중 하나 이상을 사용하여 동기화 시간 값을 결정할 수 있다. 사용자 디바이스(100)는 결정된 동기화 시간에 발생하는 동기화 포인트를 생성할 수 있다. 사용자 디바이스(100)는 동기화 포인트를 포함하는 스위치 커맨드들을 생성할 수 있고, 스위치 커맨드들 중 일부 또는 전부를 제1 미디어 플레이어, 제2 미디어 플레이어 또는 둘 모두에 제공할 수 있다.
사용자 디바이스(100)는, 미디어 아이템에서의 특정 위치에 도달되는 경우 미디어 플레이어들을 스위칭한다(460). 예를 들어, 미디어 아이템에서의 특정 위치에 도달하는 것에 대한 응답으로, 동시에, 제1 미디어 플레이어를 통한 미디어 아이템의 제시를 중단하고, 제2 미디어 플레이어를 사용하여 대응하는 위치에서 대응하는 미디어 아이템의 제시를 시작한다. 예를 들어, 제1 미디어 플레이어는 동기화 포인트에 의해 결정된 시간에 미디어 아이템의 제시를 중단하게 하는 생성된 스위치 커맨드들 중 하나 이상을 실행할 수 있다. 일부 실시예들에서, 스위치 커맨드들은 또한 미디어 아이템의 제시를 중단 한 후, 제1 미디어 플레이어가 닫히게 할 수 있다. 추가적으로, 제2 미디어 플레이어는 동기화 포인트에 의해 결정된 시간에 대응하는 미디어 아이템의 제시를 시작하게 하는 생성된 스위치 커맨드들 중 하나 이상을 실행할 수 있다.
대안적인 실시예들에서, 프로세스(400)의 단계들 중 하나 이상은 사용자 디바이스(100)와 통신하는 서버에 의해 수행될 수 있다. 예를 들어, 단계들(420-450)은 서버 상에서 수행될 수 있어서, 서버는 스위치 커맨드들을 수신하고 이를 사용자 디바이스(100)에 제공한다.
상기 설명의 일부들은 알고리즘 프로세스들 또는 동작들의 관점에서 실시예들을 설명한다. 이러한 알고리즘 설명들 및 표현들은, 데이터 프로세싱 분야의 통상의 기술자들에 의해, 이 기술 분야의 다른 통상의 기술자들에게 자신들의 작업의 실체를 효과적으로 전달하기 위해 통상적으로 사용된다. 이러한 동작들은, 기능적으로, 계산적으로 또는 논리적으로 설명되었지만, 프로세서 또는 등가의 전기 회로들, 마이크로 코드 등에 의한 실행을 위한 명령어들을 포함하는 컴퓨터 프로그램들에 의해 구현되는 것으로 이해되어야 한다. 또한, 일반화의 손실 없이, 기능적 동작들의 이러한 배열들을 모듈들로서 언급하는 것은 때때로 편리한 것으로 입증되었다. 설명된 동작들 및 이들과 연관된 모듈들은 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합들로 구현될 수 있다.
본원에서 사용되는 바와 같이, "일 실시예" 또는 "실시예"에 대한 임의의 참조는, 그 실시예와 관련하여 설명된 특정 엘리먼트, 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함되는 것을 의미한다. 따라서, 본 명세서의 다양한 곳에서의 "일 실시예에서"라는 문구의 출현은 반드시 모두 동일 실시예를 언급하는 것은 아니다.
일부 실시예들은 "커플링된" 및 "접속된"이라는 표현을 이들의 파생어와 함께 사용하여 설명될 수 있다. 이러한 용어들은 서로 동의어로서 의도되는 것은 아님을 이해해야 한다. 예를 들어, 일부 실시예들은, 둘 이상의 엘리먼트들이 서로 직접으로 물리적 또는 전기적으로 접촉하는 것을 표시하기 위해 "접속된" 이라는 용어를 사용하여 설명될 수 있다. 다른 예에서, 일부 실시예들은, 둘 이상의 엘리먼트들이 직접으로 물리적 또는 전기적으로 접촉하는 것을 표시하기 위해 "커플링된"이라는 용어를 사용하여 설명될 수 있다. 그러나, "커플링된"이라는 용어는 또한, 둘 이상의 엘리먼트들이 서로 직접 접촉하지는 않지만, 또한 여전히 서로 협력 또는 상호작용하는 것을 의미할 수 있다. 실시예들은 이러한 상황으로 제한되지 않는다.
본원에 사용된 바와 같이, 용어들 "포함하다", "포함하는", "구비하다", "구비하는", "갖는다", "갖는" 또는 이들의 임의의 다른 변화예는 비배타적인 포함을 커버하도록 의도된다. 예를 들어, 엘리먼트들의 리스트를 포함하는 프로세스, 방법, 물품 또는 장치는 반드시 오직 이러한 엘리먼트들에만 제한되는 것은 아니며, 명시적으로 나열되지 않거나 그러한 프로세스, 방법, 물품 또는 장치에 고유한 다른 엘리먼트들을 포함할 수 있다. 추가적으로, 달리 명시적으로 반대로 언급되지 않는 한, "또는"은 배타적인 또는(exclusive or)이 아니라 포함적인 또는(inclusive or)을 지칭한다. 예를 들어, 조건 A 또는 B는, 하기의 것, 즉, A가 참이고(또는 존재하고) B가 거짓인 것(또는 부존재인 것), A가 거짓이고(또는 부존재이고) B가 참인 것(또는 존재하는 것), 및 A 및 B 둘 모두가 참인 것(또는 존재하는 것) 중 임의의 하나에 의해 충족된다.
또한, 단수형 표현("a" 또는 "an")은 본원의 실시예들의 엘리먼트들 및 컴포넌트들을 설명하기 위해 사용된다. 이것은 단지 편의를 위해 그리고 본 개시내용의 일반적 부여하기 위해 행해진다. 이러한 설명은, 하나 또는 적어도 하나를 포함하도록 판독되어야 하며, 단수는 또한, 달리 의미되는 것으로 자명하지 않은 한 복수를 포함한다.
본 개시내용을 판독할 때, 본 기술분야의 통상의 기술자는, 사용자 디바이스(100) 상의 미디어 플레이어 들 사이의 스위칭을 위한 시스템 및 프로세스에 대한 또한 추가적인 대안적인 구조적 및 기능적 설계들을 인식할 것이다. 따라서, 특정 실시예들 및 애플리케이션들이 설명되고 기술되었지만, 설명된 요지는 본원에 개시된 정확한 구성 및 컴포넌트들에 제한되지 않으며, 본 기술분야의 통상의 기술자들에게 명백할 다양한 수정들, 변화들 및 변형들이 본원에 개시된 방법 및 장치의 배열, 동작 및 세부사항들에서 행해질 수 있음을 이해해야 한다.

Claims (20)

  1. 사용자 디바이스 상의 미디어 플레이어들 사이에서 스위칭하기 위한 컴퓨터-구현 방법으로서,
    제1 미디어 플레이어를 통해 상기 사용자 디바이스의 사용자에게 미디어 아이템을 제시하는 단계 - 상기 제1 미디어 플레이어는 제1 데이터 스트림에서 상기 미디어 아이템을 수신하도록 구성되고, 상기 미디어 아이템은 제1 포맷과 연관되고 제1 오디오 성분을 포함함 -; 및
    상기 미디어 아이템의 제시가 완료될 때까지 남은 시간이, 동기화 시간 값, 스트리밍 메타데이터, 하나 이상의 레이턴시 시간 중 적어도 하나에 기초하여 계산되는 임계 시간 값과 동일하거나 상기 임계 시간 값보다 큰 경우, 상기 제1 미디어 플레이어와 연관된 디스플레이 모드에서의 변화에 대한 응답으로,
    제2 데이터 스트림에서 대응하는 미디어 아이템을 수신하도록 구성되는 제2 미디어 플레이어를 식별하는 단계 - 상기 대응하는 미디어 아이템은 제2 포맷과 연관되고 상기 제1 오디오 성분에 매칭하는 제2 오디오 성분을 포함함 -,
    상기 제1 미디어 플레이어를 통한 상기 미디어 아이템의 제시를 중단하기 위한 상기 미디어 아이템에서의 특정 위치, 및 상기 제2 미디어 플레이어를 사용하여 상기 대응하는 미디어 아이템의 제시를 시작하기 위한 상기 대응하는 미디어 아이템에서의 대응하는 위치를 결정하는 단계, 및
    상기 미디어 아이템에서의 특정 위치에 도달하는 것에 대한 응답으로, 동시에, 상기 제1 미디어 플레이어를 통한 상기 미디어 아이템의 제시를 중단하고 상기 제2 미디어 플레이어를 사용하여 상기 대응하는 위치에서 상기 대응하는 미디어 아이템의 제시를 시작하는 단계
    를 포함하고,
    상기 동기화 시간 값은 연관된 미디어 플레이어에 의한 대응하는 미디어 아이템의 제시를 위해 준비되는 시간의 양에 관한 것이고, 상기 스트리밍 메타데이터는 상기 미디어 아이템 또는 상기 대응하는 미디어 아이템을 스트리밍하기 위해 요구되는 추정된 최소 대역폭 중 하나 이상을 포함하며, 상기 하나 이상의 레이턴시 시간은 상기 미디어 아이템 및 상기 대응하는 미디어 아이템 중 적어도 하나를 제시하기 위한 하나 이상의 프로세스가 발생하기 위한 시간 양에 관한 것인, 방법.
  2. 제1항에 있어서,
    상기 제1 미디어 플레이어를 통해 상기 미디어 아이템의 제시를 중단하는 단계는,
    상기 미디어 아이템의 제시를 뮤팅시키는 단계; 및
    상기 제1 미디어 플레이어를 닫는 단계를 더 포함하는, 방법.
  3. 제1항에 있어서,
    상기 제1 미디어 플레이어를 통한 상기 미디어 아이템의 제시를 중단하기 위한 상기 미디어 아이템에서의 특정 위치, 및 상기 제2 미디어 플레이어를 사용하여 상기 대응하는 미디어 아이템의 제시를 시작하기 위한 상기 대응하는 미디어 아이템에서의 대응하는 위치를 결정하는 단계는,
    상기 대응하는 미디어 아이템과 연관된 대역폭을 추정하는 단계;
    추정된 대역폭을 사용하여 동기화 시간을 결정하는 단계; 및
    상기 동기화 시간을 사용하여, 상기 미디어 아이템에서의 상기 특정 위치 및 상기 대응하는 미디어에서의 상기 대응하는 위치를 결정하는 단계를 포함하는, 방법.
  4. 제1항에 있어서,
    상기 대응하는 미디어 아이템과 연관된 버퍼링된 데이터의 양을 모니터링하는 단계;
    상기 제1 미디어 플레이어가 상기 미디어 아이템에서의 특정 위치에 도달한 후, 상기 버퍼링된 데이터의 양이 상기 대응하는 미디어 아이템의 제시를 시작하기에 충분하지 않은 것으로 결정하는 단계; 및
    상기 제1 미디어 플레이어를 닫는 단계를 더 포함하는, 방법.
  5. 제1항에 있어서,
    상기 제1 미디어 플레이어는 비디오 미디어 플레이어이고, 상기 미디어 아이템은, 영상 성분을 또한 포함하는 비디오 미디어 아이템이고, 상기 제2 미디어 플레이어는 오디오 미디어 플레이어이고, 상기 대응하는 미디어 아이템은 오디오 미디어 아이템이고, 상기 디스플레이 모드에 대한 변화는, 상기 미디어 아이템의 영상 성분 중 어떠한 성분도 상기 사용자 디바이스에 의해 디스플레이되지 않게 하는, 방법.
  6. 제5항에 있어서,
    상기 대응하는 미디어 아이템을 상기 제2 미디어 플레이어를 통해 상기 사용자에게 제시하는 단계; 및
    상기 제2 미디어 플레이어와 연관된 디스플레이 모드에서의 변화에 대한 응답으로,
    상기 제2 미디어 플레이어를 통한 상기 대응하는 미디어 아이템의 제시를 중단하기 위한 상기 대응하는 미디어 아이템에서의 제2 특정 위치, 및 상기 제1 미디어 플레이어를 사용하여 상기 미디어 아이템의 제시를 시작하기 위한 상기 미디어 아이템에서의 제2 대응하는 위치를 결정하는 단계, 및
    상기 대응하는 미디어 아이템에서의 제2 특정 위치에 도달하는 것에 대한 응답으로, 동시에, 상기 제2 미디어 플레이어를 통한 상기 대응하는 미디어 아이템의 제시를 중단하고 상기 제1 미디어 플레이어를 사용하여 상기 제2 대응하는 위치에서 상기 미디어 아이템의 제시를 시작하는 단계를 더 포함하는, 방법.
  7. 제6항에 있어서,
    상기 제2 미디어 플레이어를 통한 상기 대응하는 미디어 아이템의 제시를 중단하는 단계는,
    상기 대응하는 미디어 아이템의 제시를 뮤팅시키는 단계; 및
    상기 제2 미디어 플레이어를 닫는 단계를 더 포함하는, 방법.
  8. 사용자 디바이스 상의 미디어 플레이어들 사이에서 스위칭하기 위한 실행가능한 컴퓨터 프로그램 명령어들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령어들은,
    제1 미디어 플레이어를 통해 상기 사용자 디바이스의 사용자에게 미디어 아이템을 제시하는 단계 - 상기 제1 미디어 플레이어는 제1 데이터 스트림에서 상기 미디어 아이템을 수신하도록 구성되고, 상기 미디어 아이템은 제1 포맷과 연관되고 제1 오디오 성분을 포함함 -; 및
    상기 미디어 아이템의 제시가 완료될 때까지 남은 시간이, 동기화 시간 값, 스트리밍 메타데이터, 하나 이상의 레이턴시 시간 중 적어도 하나에 기초하여 계산되는 임계 시간 값과 동일하거나 상기 임계 시간 값보다 큰 경우, 상기 제1 미디어 플레이어와 연관된 디스플레이 모드에서의 변화에 대한 응답으로,
    제2 데이터 스트림에서 대응하는 미디어 아이템을 수신하도록 구성되는 제2 미디어 플레이어를 식별하는 단계 - 상기 대응하는 미디어 아이템은 제2 포맷과 연관되고 상기 제1 오디오 성분에 매칭하는 제2 오디오 성분을 포함함 -,
    상기 제1 미디어 플레이어를 통한 상기 미디어 아이템의 제시를 중단하기 위한 상기 미디어 아이템에서의 특정 위치, 및 상기 제2 미디어 플레이어를 사용하여 상기 대응하는 미디어 아이템의 제시를 시작하기 위한 상기 대응하는 미디어 아이템에서의 대응하는 위치를 결정하는 단계, 및
    상기 미디어 아이템에서의 특정 위치에 도달하는 것에 대한 응답으로, 동시에, 상기 제1 미디어 플레이어를 통한 상기 미디어 아이템의 제시를 중단하고 상기 제2 미디어 플레이어를 사용하여 상기 대응하는 위치에서 상기 대응하는 미디어 아이템의 제시를 시작하는 단계
    를 포함하는 단계들을 수행하도록 실행가능하고,
    상기 동기화 시간 값은 연관된 미디어 플레이어에 의한 대응하는 미디어 아이템의 제시를 위해 준비되는 시간의 양에 관한 것이고, 상기 스트리밍 메타데이터는 상기 미디어 아이템 또는 상기 대응하는 미디어 아이템을 스트리밍하기 위해 요구되는 추정된 최소 대역폭 중 하나 이상을 포함하며, 상기 하나 이상의 레이턴시 시간은 상기 미디어 아이템 및 상기 대응하는 미디어 아이템 중 적어도 하나를 제시하기 위한 하나 이상의 프로세스가 발생하기 위한 시간 양에 관한 것인, 컴퓨터 판독가능 저장 매체.
  9. 제8항에 있어서,
    상기 제1 미디어 플레이어를 통해 상기 미디어 아이템의 제시를 중단하는 단계는,
    상기 미디어 아이템의 제시를 뮤팅시키는 단계; 및
    상기 제1 미디어 플레이어를 닫는 단계를 더 포함하는, 컴퓨터 판독가능 저장 매체.
  10. 제8항에 있어서,
    상기 제1 미디어 플레이어를 통한 상기 미디어 아이템의 제시를 중단하기 위한 상기 미디어 아이템에서의 특정 위치, 및 상기 제2 미디어 플레이어를 사용하여 상기 대응하는 미디어 아이템의 제시를 시작하기 위한 상기 대응하는 미디어 아이템에서의 대응하는 위치를 결정하는 단계는,
    상기 대응하는 미디어 아이템과 연관된 대역폭을 추정하는 단계;
    추정된 대역폭을 사용하여 동기화 시간을 결정하는 단계; 및
    상기 동기화 시간을 사용하여, 상기 미디어 아이템에서의 상기 특정 위치 및 상기 대응하는 미디어에서의 상기 대응하는 위치를 결정하는 단계를 포함하는, 컴퓨터 판독가능 저장 매체.
  11. 제8항에 있어서,
    상기 대응하는 미디어 아이템과 연관된 버퍼링된 데이터의 양을 모니터링하는 단계;
    상기 제1 미디어 플레이어가 상기 미디어 아이템에서의 특정 위치에 도달한 후, 상기 버퍼링된 데이터의 양이 상기 대응하는 미디어 아이템의 제시를 시작하기에 충분하지 않은 것으로 결정하는 단계; 및
    상기 제1 미디어 플레이어를 닫는 단계를 더 포함하는, 컴퓨터 판독가능 저장 매체.
  12. 제8항에 있어서,
    상기 제1 미디어 플레이어는 비디오 미디어 플레이어이고, 상기 미디어 아이템은, 영상 성분을 또한 포함하는 비디오 미디어 아이템이고, 상기 제2 미디어 플레이어는 오디오 미디어 플레이어이고, 상기 대응하는 미디어 아이템은 오디오 미디어 아이템이고, 상기 디스플레이 모드에 대한 변화는, 상기 미디어 아이템의 영상 성분 중 어떠한 성분도 상기 사용자 디바이스에 의해 디스플레이되지 않게 하는, 컴퓨터 판독가능 저장 매체.
  13. 제12항에 있어서,
    상기 대응하는 미디어 아이템을 상기 제2 미디어 플레이어를 통해 상기 사용자에게 제시하는 단계; 및
    상기 제2 미디어 플레이어와 연관된 디스플레이 모드에서의 변화에 대한 응답으로,
    상기 제2 미디어 플레이어를 통한 상기 대응하는 미디어 아이템의 제시를 중단하기 위한 상기 대응하는 미디어 아이템에서의 제2 특정 위치, 및 상기 제1 미디어 플레이어를 사용하여 상기 미디어 아이템의 제시를 시작하기 위한 상기 미디어 아이템에서의 제2 대응하는 위치를 결정하는 단계, 및
    상기 대응하는 미디어 아이템에서의 제2 특정 위치에 도달하는 것에 대한 응답으로, 동시에, 상기 제2 미디어 플레이어를 통한 상기 대응하는 미디어 아이템의 제시를 중단하고 상기 제1 미디어 플레이어를 사용하여 상기 제2 대응하는 위치에서 상기 미디어 아이템의 제시를 시작하는 단계를 더 포함하는, 컴퓨터 판독가능 저장 매체.
  14. 제13항에 있어서,
    상기 제2 미디어 플레이어를 통한 상기 대응하는 미디어 아이템의 제시를 중단하는 단계는,
    상기 대응하는 미디어 아이템의 제시를 뮤팅시키는 단계; 및
    상기 제2 미디어 플레이어를 닫는 단계를 더 포함하는, 컴퓨터 판독가능 저장 매체.
  15. 사용자 디바이스 상의 미디어 플레이어들 사이에서 스위칭하기 위한 디바이스로서,
    모듈들을 실행하도록 구성되는 프로세서; 및
    상기 모듈들을 저장하는 메모리를 포함하고,
    상기 모듈들은,
    제1 미디어 플레이어를 통해 상기 사용자 디바이스의 사용자에게 미디어 아이템을 제시하도록 구성되는 사용자 인터페이스 모듈 - 상기 제1 미디어 플레이어는 제1 데이터 스트림에서 상기 미디어 아이템을 수신하도록 구성되고, 상기 미디어 아이템은 제1 포맷과 연관되고 제1 오디오 성분을 포함함 -;
    상기 제1 미디어 플레이어와 연관된 디스플레이 모드에서의 변화를 검출하도록 구성되는 디스플레이 모드 모듈;
    제2 데이터 스트림에서 대응하는 미디어 아이템을 수신하도록 구성되는 제2 미디어 플레이어를 식별하도록 구성되는 플레이어 식별 모듈 - 상기 대응하는 미디어 아이템은 제2 포맷과 연관되고 상기 제1 오디오 성분에 매칭하는 제2 오디오 성분을 포함함 -; 및
    상기 제1 미디어 플레이어를 통한 상기 미디어 아이템의 제시를 중단하기 위한 상기 미디어 아이템에서의 특정 위치, 및 상기 제2 미디어 플레이어를 사용하여 상기 대응하는 미디어 아이템의 제시를 시작하기 위한 상기 대응하는 미디어 아이템에서의 대응하는 위치를 결정하도록 구성되는 동기화 모듈을 포함하고,
    상기 미디어 아이템의 제시가 완료될 때까지 남은 시간이, 동기화 시간 값, 스트리밍 메타데이터, 하나 이상의 레이턴시 시간 중 적어도 하나에 기초하여 계산되는 임계 시간 값과 동일하거나 상기 임계 시간 값보다 큰 경우, 상기 사용자 인터페이스 모듈은, 상기 미디어 아이템에서의 특정 위치에 도달하는 것에 대한 응답으로, 동시에, 상기 제1 미디어 플레이어를 통한 상기 미디어 아이템의 제시를 중단하고 상기 제2 미디어 플레이어를 사용하여 상기 대응하는 위치에서 상기 대응하는 미디어 아이템의 제시를 시작하도록 추가로 구성되고,
    상기 동기화 시간 값은 연관된 미디어 플레이어에 의한 대응하는 미디어 아이템의 제시를 위해 준비되는 시간의 양에 관한 것이고, 상기 스트리밍 메타데이터는 상기 미디어 아이템 또는 상기 대응하는 미디어 아이템을 스트리밍하기 위해 요구되는 추정된 최소 대역폭 중 하나 이상을 포함하며, 상기 하나 이상의 레이턴시 시간은 상기 미디어 아이템 및 상기 대응하는 미디어 아이템 중 적어도 하나를 제시하기 위한 하나 이상의 프로세스가 발생하기 위한 시간 양에 관한 것인, 디바이스.
  16. 제15항에 있어서,
    상기 사용자 인터페이스 모듈은,
    상기 미디어 아이템의 제시를 뮤팅시키고;
    상기 제1 미디어 플레이어를 닫도록
    추가로 구성되는, 디바이스.
  17. 제15항에 있어서,
    상기 대응하는 미디어 아이템과 연관된 대역폭을 추정하도록 구성되는 대역폭 추정기 모듈을 더 포함하고;
    상기 동기화 모듈은,
    추정된 대역폭을 사용하여 동기화 시간을 결정하고;
    상기 동기화 시간을 사용하여, 상기 미디어 아이템에서의 특정 위치 및 상기 대응하는 미디어 아이템에서의 대응하는 위치를 결정하도록
    추가로 구성되는, 디바이스.
  18. 제15항에 있어서,
    상기 동기화 모듈은,
    상기 대응하는 미디어 아이템과 연관된 버퍼링된 데이터의 양을 모니터링하고;
    상기 제1 미디어 플레이어가 상기 미디어 아이템에서의 특정 위치에 도달한 후, 상기 버퍼링된 데이터의 양이 상기 대응하는 미디어 아이템의 제시를 시작하기에 충분하지 않은 것으로 결정하도록
    추가로 구성되고,
    상기 사용자 인터페이스 모듈은 상기 제1 미디어 플레이어를 닫도록 추가로 구성되는, 디바이스.
  19. 제15항에 있어서,
    상기 제1 미디어 플레이어는 비디오 미디어 플레이어이고, 상기 미디어 아이템은, 영상 성분을 또한 포함하는 비디오 미디어 아이템이고, 상기 제2 미디어 플레이어는 오디오 미디어 플레이어이고, 상기 대응하는 미디어 아이템은 오디오 미디어 아이템이고, 상기 디스플레이 모드에 대한 변화는, 상기 미디어 아이템의 영상 성분 중 어떠한 성분도 상기 사용자 디바이스에 의해 디스플레이되지 않게 하는, 디바이스.
  20. 제19항에 있어서,
    상기 사용자 인터페이스 모듈은, 상기 제2 미디어 플레이어를 통해 상기 사용자에게 상기 대응하는 미디어 아이템을 제시하도록 추가로 구성되고;
    상기 디스플레이 모드 모듈은, 상기 제2 미디어 플레이어와 연관된 디스플레이 모드에서의 변화를 검출하도록 추가로 구성되고;
    상기 동기화 모듈은, 상기 제2 미디어 플레이어를 통한 상기 대응하는 미디어 아이템의 제시를 중단하기 위한 상기 대응하는 미디어 아이템에서의 제2 특정 위치, 및 상기 제1 미디어 플레이어를 사용하여 상기 미디어 아이템의 제시를 시작하기 위한 상기 미디어 아이템에서의 제2 대응하는 위치를 결정하도록 추가로 구성되고;
    상기 사용자 인터페이스 모듈은, 상기 대응하는 미디어 아이템에서의 제2 특정 위치에 도달하는 것에 대한 응답으로, 동시에, 상기 제2 미디어 플레이어를 통한 상기 대응하는 미디어 아이템의 제시를 중단하고 상기 제1 미디어 플레이어를 사용하여 상기 제2 대응하는 위치에서 상기 미디어 아이템의 제시를 시작하도록 추가로 구성되는, 디바이스.
KR1020187028983A 2014-06-11 2015-05-01 디스플레이 모드 기반 미디어 플레이어 스위칭 KR102025504B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/301,892 US9442640B2 (en) 2014-06-11 2014-06-11 Display mode based media player switching
US14/301,892 2014-06-11
PCT/US2015/028747 WO2015191180A1 (en) 2014-06-11 2015-05-01 Display mode based media player switching

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020167036705A Division KR20170012454A (ko) 2014-06-11 2015-05-01 디스플레이 모드 기반 미디어 플레이어 스위칭

Publications (2)

Publication Number Publication Date
KR20180113644A KR20180113644A (ko) 2018-10-16
KR102025504B1 true KR102025504B1 (ko) 2019-09-25

Family

ID=54834077

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187028983A KR102025504B1 (ko) 2014-06-11 2015-05-01 디스플레이 모드 기반 미디어 플레이어 스위칭
KR1020167036705A KR20170012454A (ko) 2014-06-11 2015-05-01 디스플레이 모드 기반 미디어 플레이어 스위칭

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020167036705A KR20170012454A (ko) 2014-06-11 2015-05-01 디스플레이 모드 기반 미디어 플레이어 스위칭

Country Status (6)

Country Link
US (2) US9442640B2 (ko)
EP (1) EP3155824B1 (ko)
KR (2) KR102025504B1 (ko)
CN (1) CN106664464B (ko)
AU (1) AU2015272047B2 (ko)
WO (1) WO2015191180A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9442640B2 (en) * 2014-06-11 2016-09-13 Google Inc. Display mode based media player switching
GB2536887B (en) * 2015-03-27 2021-05-05 Sony Europe Bv Video content replay
JP6124985B1 (ja) * 2015-12-24 2017-05-10 株式会社コロプラ 映像コンテンツ配信システム及びコンテンツ管理サーバ
US10028023B2 (en) * 2016-01-20 2018-07-17 Google Llc Methods and systems for automatic media output based on user proximity
CN105824514A (zh) * 2016-03-29 2016-08-03 乐视控股(北京)有限公司 音乐源切换方法和装置
US10353577B2 (en) 2016-10-04 2019-07-16 Centurylink Intellectual Property Llc Method and system for implementing content navigation or selection using touch-based input
US10516914B2 (en) 2016-10-19 2019-12-24 Centurylink Intellectual Property Llc Method and system for implementing automatic audio optimization for streaming services
US11240567B2 (en) 2016-10-25 2022-02-01 Aether Media, Inc. Video content switching and synchronization system and method for switching between multiple video formats
WO2018081290A1 (en) 2016-10-25 2018-05-03 Aether, Inc. Video content switching and synchronization system and method for switching between multiple video formats
US20180176639A1 (en) * 2016-12-19 2018-06-21 Centurylink Intellectual Property Llc Method and System for Implementing Advanced Audio Shifting
JP6844401B2 (ja) * 2017-04-26 2021-03-17 ティアック株式会社 情報処理装置、オーディオ装置及びプログラム
EP3439308A1 (en) * 2017-07-31 2019-02-06 Zhilabs S.L. Determination of qoe in encrypted video streams using supervised learning
US11025976B2 (en) 2019-03-18 2021-06-01 At&T Intellectual Property I, L.P. System and method for state based content delivery to a client device
CN116634189B (zh) * 2023-07-20 2023-10-03 天津星耀九洲科技有限公司 交互式直播数据显示方法、装置及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090328124A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Adaptive video switching for variable network conditions

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7178106B2 (en) * 1999-04-21 2007-02-13 Sonic Solutions, A California Corporation Presentation of media content from multiple media sources
US7983349B2 (en) * 2001-03-20 2011-07-19 Lightwaves Systems, Inc. High bandwidth data transport system
US7096474B2 (en) * 2001-04-20 2006-08-22 Sun Microsystems, Inc. Mobile multimedia Java framework application program interface
FI20031908A0 (fi) 2003-12-29 2003-12-29 Nokia Corp Menetelmä medialeikkeen koostamiseksi liikkuvassa päätelaitteessa, menetelmää hyödyntävä päätelaite ja ohjelmalliset välineet menetelmän toteuttamiseksi
US7526588B1 (en) 2004-04-27 2009-04-28 Apple Inc. Communication between an accessory and a media player using a protocol with multiple lingoes
US7441062B2 (en) * 2004-04-27 2008-10-21 Apple Inc. Connector interface system for enabling data communication with a multi-communication device
US20060287912A1 (en) * 2005-06-17 2006-12-21 Vinayak Raghuvamshi Presenting advertising content
US20070077784A1 (en) * 2005-08-01 2007-04-05 Universal Electronics Inc. System and method for accessing a user interface via a secondary device
EP1927078A2 (en) 2005-09-23 2008-06-04 Millennium IT (USA) Inc. Method of selectively displaying data
US7653705B2 (en) * 2006-06-26 2010-01-26 Microsoft Corp. Interactive recording and playback for network conferencing
US20080152300A1 (en) * 2006-12-22 2008-06-26 Guideworks, Llc Systems and methods for inserting advertisements during commercial skip
CN101075265A (zh) * 2007-07-23 2007-11-21 王文钢 自动跟踪画面重点区域的网页小窗口视频展示的方法
US20090254931A1 (en) * 2008-04-07 2009-10-08 Pizzurro Alfred J Systems and methods of interactive production marketing
US20100146078A1 (en) 2008-06-02 2010-06-10 Wolff Mark S System and method for controlling presentation of multimedia content
US7796190B2 (en) * 2008-08-15 2010-09-14 At&T Labs, Inc. System and method for adaptive content rendition
CN101504648A (zh) 2008-11-14 2009-08-12 北京搜狗科技发展有限公司 展现网页资源的方法及装置
US8266314B2 (en) * 2009-12-16 2012-09-11 International Business Machines Corporation Automated audio or video subset network load reduction
US8468056B1 (en) * 2010-04-21 2013-06-18 Google Inc. Ad skip feature for characterizing advertisement effectiveness
US8878773B1 (en) * 2010-05-24 2014-11-04 Amazon Technologies, Inc. Determining relative motion as input
CN102075976B (zh) * 2011-01-11 2013-07-24 中国联合网络通信集团有限公司 移动流媒体播放器和移动流媒体播放方法
CN102149005A (zh) * 2011-04-29 2011-08-10 四川长虹电器股份有限公司 自适应带宽控制网络视频质量的方法
US8966370B2 (en) * 2012-08-31 2015-02-24 Google Inc. Dynamic adjustment of video quality
CN102903052A (zh) * 2012-10-30 2013-01-30 互动通天图信息技术有限公司 一种移动广告播放方法
US9208764B2 (en) * 2013-07-05 2015-12-08 Google Inc. Methods and devices for determining media files based on activity levels
US20150086178A1 (en) * 2013-09-20 2015-03-26 Charles Ray Methods, systems, and computer readable media for displaying custom-tailored music video content
CN103702214B (zh) * 2013-12-10 2018-08-14 乐视网信息技术(北京)股份有限公司 一种视频播放方法和电子设备
US9442640B2 (en) * 2014-06-11 2016-09-13 Google Inc. Display mode based media player switching

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090328124A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Adaptive video switching for variable network conditions

Also Published As

Publication number Publication date
CN106664464B (zh) 2019-08-13
KR20180113644A (ko) 2018-10-16
US9442640B2 (en) 2016-09-13
US20150363060A1 (en) 2015-12-17
US9946449B2 (en) 2018-04-17
EP3155824A4 (en) 2018-01-24
CN106664464A (zh) 2017-05-10
AU2015272047A1 (en) 2016-12-15
EP3155824A1 (en) 2017-04-19
KR20170012454A (ko) 2017-02-02
EP3155824B1 (en) 2019-10-16
AU2015272047B2 (en) 2017-10-19
WO2015191180A1 (en) 2015-12-17
US20160378324A1 (en) 2016-12-29

Similar Documents

Publication Publication Date Title
KR102025504B1 (ko) 디스플레이 모드 기반 미디어 플레이어 스위칭
AU2020204121B2 (en) Media application backgrounding
US10284683B2 (en) Channel access method and system
CN108566561B (zh) 视频播放方法、装置及存储介质
US10733361B2 (en) Content reproducing apparatus
US20160261671A1 (en) Local Operation of Remotely Executed Applications
US11301345B2 (en) Desktop sound source discovery
US20170034301A1 (en) Caching streaming media to user devices
US10939187B1 (en) Traversing a semantic graph to process requests for video
US11924501B1 (en) System and method for dynamic presentation of graphical and video content
US9953340B1 (en) Companion advertisements on remote control devices
WO2017161763A1 (zh) 一种更新菜单信息的方法及装置
JP2018147499A (ja) 再生装置、再生プログラムおよび再生システム
JP2017059268A (ja) コンテンツ再生装置、コンテンツ再生プログラム、代行装置、代行プログラムおよびコンテンツ再生システム

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant