KR102301637B1 - 컨텐츠 재생을 위한 클라이언트, 컨텐츠 재생 방법, 컨텐츠 접속 제공 방법, 전자 장치의 컨텐츠 재생 선택 방법 및 컴퓨터 판독가능 기록매체 - Google Patents

컨텐츠 재생을 위한 클라이언트, 컨텐츠 재생 방법, 컨텐츠 접속 제공 방법, 전자 장치의 컨텐츠 재생 선택 방법 및 컴퓨터 판독가능 기록매체 Download PDF

Info

Publication number
KR102301637B1
KR102301637B1 KR1020140111790A KR20140111790A KR102301637B1 KR 102301637 B1 KR102301637 B1 KR 102301637B1 KR 1020140111790 A KR1020140111790 A KR 1020140111790A KR 20140111790 A KR20140111790 A KR 20140111790A KR 102301637 B1 KR102301637 B1 KR 102301637B1
Authority
KR
South Korea
Prior art keywords
content
electronic device
client
http
playback
Prior art date
Application number
KR1020140111790A
Other languages
English (en)
Other versions
KR20150035387A (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 삼성전자주식회사
Priority to EP14185178.2A priority Critical patent/EP2854315B1/en
Publication of KR20150035387A publication Critical patent/KR20150035387A/ko
Application granted granted Critical
Publication of KR102301637B1 publication Critical patent/KR102301637B1/ko

Links

Images

Classifications

    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics

Abstract

본 발명은 컨텐츠 재생을 위한 클라이언트, 컨텐츠 재생 방법, 컨텐츠 접속 제공 방법, 전자 장치의 컨텐츠 재생 선택 방법 및 컴퓨터 판독가능 기록매체에 관한 것으로서, 본 발명의 실시예에 따른 컨텐츠 재생 방법은 전자장치의 컨텐츠 재생 방법에 있어서, 전자장치가, 컨텐츠를 제공하는 컨텐츠원에 접속하는 단계, 전자장치에서, 컨텐츠 관련 방송 메뉴를 실행하기에 앞서, 컨텐츠원으로부터 컨텐츠를 프리패치(prefetch)하는 단계, 및 방송 메뉴의 컨텐츠를 청취하는 동안, 컨텐츠의 프리패치를 위해 복수의 방송 메뉴를 스캐닝하는 단계를 포함할 수 있다.

Description

컨텐츠 재생을 위한 클라이언트, 컨텐츠 재생 방법, 컨텐츠 접속 제공 방법, 전자 장치의 컨텐츠 재생 선택 방법 및 컴퓨터 판독가능 기록매체{Client for Content Playback, Method for Content Playback, Method of Providing Access to Content, Method for Content Playback Selection on Electronic Device, and Non-transitory Computer-readable Medium}
본 발명은 컨텐츠 재생을 위한 클라이언트, 컨텐츠 재생 방법, 컨텐츠 접속 제공 방법, 전자 장치의 컨텐츠 재생 선택 방법 및 컴퓨터 판독가능 기록매체에 관한 것으로서, 휴대 통신 장치들의 유연한 동작 및 컨텐츠 재생에 관계되며, 더 상세하게는 모바일 전자 장치의 접속을 유지하고, 재생을 위해 컨텐츠를 초기에 수립하고, 주기적으로 프리패칭(prefetching)하며, 재생 선택을 위해 항해 다이얼(navigational dial) 사용자 인터페이스를 제공하는 컨텐츠 재생을 위한 클라이언트, 컨텐츠 재생 방법, 컨텐츠 접속 제공 방법, 전자 장치의 컨텐츠 재생 선택 방법 및 컴퓨터 판독가능 기록매체에 관한 것이다.
모바일 전자 장치는 저장된 컨텐츠를 다시 재생하고, 특정 사용자의 결정 순서대로 재생하려는 컨텐츠를 선택하기 위한 재생목록을 사용하며, 컨텐츠의 총 목록 또는 재생목록으로부터 컨텐츠를 셔플링(suffling)하는 것이 가능하다. 스마트폰과 같은 모바일 장치들이 사용하는 무선 형태(Radio type)의 컨텐츠는 시작을 위해 하나의 방송국(station)을 선택하고, 선택한 노래를 기다림으로써 재생된다. 방송국들을 변경하는 것은 일반적으로 장르 명칭이 있는 시각적 표시에 근거하여 화면 표시로부터 선택해 이루어진다.
그런데, 모바일 장치들을 사용하여 라디오 방송국들(혹은 무선국들)을 변경하게 되면, 컨텐츠의 재생을 시작하는 사이에 지연이 발생하는 문제가 있다.
본 발명의 실시예는 가령 모바일 전자 장치의 접속을 유지하고, 재생을 위해 컨텐츠를 초기에 수립하여 주기적으로 프리패칭하며, 재생의 선택을 위해 항해 다이얼 사용자 인터페이스를 제공하는 컨텐츠 재생을 위한 클라이언트, 컨텐츠 재생 방법, 컨텐츠 접속 제공 방법, 전자 장치의 컨텐츠 재생 선택 방법 및 컴퓨터 판독가능 기록매체를 제공함에 그 목적이 있다.
본 발명의 실시예에 따른 컨텐츠 재생 방법은 전자장치의 컨텐츠 재생 방법에 있어서, 상기 전자장치가, 컨텐츠를 제공하는 컨텐츠원에 접속하는 단계, 상기 전자장치에서, 상기 컨텐츠에 관련된 방송 메뉴를 실행하기에 앞서, 상기 컨텐츠원으로부터 상기 컨텐츠를 프리패치(prefetch)하는 단계, 및 상기 실행한 방송 메뉴의 컨텐츠를 청취하는 동안, 상기 컨텐츠의 프리패치를 위해 복수의 방송 메뉴를 스캐닝하는 단계를 포함한다.
상기 컨텐츠원에 접속하는 단계는, 상기 전자장치가 상기 컨텐츠를 위해, 개방된 상태를 유지하는 오픈 커맨드 채널을 통해 상기 컨텐츠원에 접속하며, 상기 컨텐츠를 프리패치하는 단계는, 상기 복수의 방송 메뉴 중 각 방송 메뉴의 데크(desk) 상에 있는 모든 컨텐츠에 대한 미리보기 컨텐츠 클립, 커버 아트(cover art) 및 메타 데이터를 프리패치할 수 있다.
상기 오픈 커맨트 채널은 오픈 웹소켓(Open WebSocket) 커맨드 채널을 포함하며, 상기 컨텐츠원은 서버를 포함할 수 있다.
상기 오픈 커맨드 채널은 서로 다른 복수의 전송 방식을 지원하는 분리된 전송층을 포함할 수 있다.
상기 컨텐츠 재생 방법은 안테나의 웨이크업 및 웹 접속 시간에 관련된 지연시간(latency)을 감소시키기 위해 상기 전자장치로 하트비트(heartbeat) 신호를 주기적으로 전송하는 단계, 상기 컨텐츠의 파일 시스템으로부터의 미리보기 컨텐츠 클립을 상기 전자장치 내의 메모리에 로딩하는 단계, 및 임의의 청취 모드 시간 임계치에 도달하기 전까지 상기 미리보기 컨텐츠 클립을 재생하는 단계를 더 포함할 수 있다.
상기 컨텐츠의 재생은 상기 임의의 청취 모드 시간 임계치에 도달하기에 앞서 스캐닝 모드 상태를 유지하고, 상기 임의의 청취 모드 시간 임계치에 도달한 후, 상기 메모리 내의 컨텐츠가 제1 특정 스토리지 크기 임계치보다 작은지 점검하고, 상기 메모리 내의 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 작으면, 컨텐츠 데이터를 추가로 요청할 수 있다.
상기 컨텐츠 재생 방법은 상기 메모리 내의 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 큰지 판단하고, 상기 메모리 내의 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 크면, 현재 선택된 방송 메뉴의 재생을 위해 이용 가능한 다음 컨텐츠의 미리보기 컨텐츠 클립을 요청하는 단계를 더 포함할 수 있다.
임의의 지점에 도달하고, 상기 메모리 내에 컨텐츠를 유지하는 재생이 상기 현재 선택된 방송 메뉴 상에서 재생되는 컨텐츠를 위한 제2 특정 스토리지 크기 임계치보다 작을 때, 컨텐츠 데이터를 추가로 요청할 수 있다.
상기 컨텐츠는 오디오 및 비디오 데이터 중 적어도 하나를 포함하며, 상기 컨텐츠의 제공에 관련된 상기 컨텐츠원으로의 요청은 비동기식(asynchronous)으로 이루어질 수 있다.
상기 접속 및 상기 접속의 유지는, 표준 HTTP에 근거하여 이루어질 수 있다.
상기 컨텐츠 재생 방법은 상기 전자장치와 상기 컨텐츠원 사이에 연결되는 프락시(proxy)를 포함하며, 상기 프락시가, 상기 전자장치와 상기 컨텐츠원 사이에서 웹소켓을 통해 접속하는 단계, 상기 웹소켓을 통한 접속이 완료된 후, 상기 프락시가 모든 HTTP 요청들을 상기 전자장치로부터 수신하는 단계, 상기 프락시가, 상기 전자 장치로부터 수신된 HTTP 요청을 파싱하고, HTTP 로컬 풀에 상기 HTTP 요청들의 일부를 저장하며, 저장되지 않는 다른 HTTP 요청들을 상기 웹소켓을 통해 상기 컨텐츠원으로 전송하는 단계, 및 상기 프락시가, 상기 컨텐츠원으로부터 수신된 초기 HTTP 응답을 패치하고, 상기 컨텐츠원으로부터 수신된 응답을 파이핑(piping)하는 단계를 더 포함하되, 상기 HTTP 로컬 풀 내의 HTTP 요청은 임의의 시간 간격 후에 타임 아웃되고, 삭제될 수 있다.
상기 웹소켓을 통한 접속이 방해받거나 끊길 때, 상기 프락시는 상기 웹소켓을 통해 접속을 재시도할 수 있다.
본 발명의 실시예에 따른 클라이언트는, 컨텐츠 재생을 위한 클라이언트에 있어서, 컨텐츠를 제공하는 컨텐츠원으로 인터페이스를 제공하고, 상기 클라이언트와 상기 컨텐츠원에 접속하는 커맨드 채널 모듈, 상기 클라이언트가, 상기 컨텐츠에 관련된 방송 메뉴를 실행하기에 앞서, 상기 컨텐츠원으로부터 상기 컨텐츠를 프리패치(prefetch)하는 프리패치 관리자 모듈, 및 임의의 방송 메뉴에 관련된 컨텐츠를 재생하는 동안, 상기 컨텐츠의 프리패치를 위해 복수의 방송 메뉴를 스캐닝하는 라디오 서비스 모듈을 포함한다.
상기 커맨드 채널 모듈은 상기 컨텐츠를 위해, 개방된 상태를 유지하는 오픈 커맨드 채널을 통해 상기 컨텐츠원에 접속하고, 상기 프리패치된 컨텐츠는, 상기 복수의 방송 메뉴를 위한 컨텐츠를 재생하기 위하여 다음의 모든 방송 메뉴들을 위한 미리보기 컨텐츠 클립들, 커버 아트 및 메타 데이터를 포함하며, 상기 오픈 커맨드 채널은 오픈 웹소켓 커맨드 채널을 포함할 수 있다.
상기 커맨드 채널 모듈은 클라이언트 안테나 웨이크업 및 상기 웨이크업에 연계된 지연 시간을 감소하기 위해 상기 클라이언트로 하트비트 신호를 주기적으로 전송하고, 상기 프리패치 관리자 모듈은 파일 시스템으로부터의 미리보기 컨텐츠 클립을 상기 클라이언트에 의해 사용된 메모리 내에 로드하며, 상기 라디오 서비스 모듈은 상기 컨텐츠를 청취하는 임의의 청취 모드 시간 임계치에 도달하는지 판단하기 전까지 상기 미리보기 컨텐츠 클립을 재생할 수 있다.
상기 라디오 서비스 모듈은 상기 임의의 청취 모드 시간 임계치에 도달하기에 앞서 스캔 모드에서 재생을 유지하고, 상기 임의의 청취 모드 시간 임계치에 도달한 후, 상기 프리패치 관리자가 상기 메모리 내의 컨텐츠가 제1 특정 스토리지 크기 임계치보다 작은지 점검하며, 상기 메모리 내의 상기 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 작으면, 상기 프리패치 관리자 모듈은 컨텐츠 데이터를 추가로 요청할 수 있다.
상기 프리패치 관리자 모듈은 상기 메모리 내의 상기 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 큰지 점검하고, 상기 메모리 내의 상기 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 크면, 상기 프리패치 관리자 모듈은 현재 선택된 방송 메뉴의 상기 라디오 서비스 모듈에 의해 재생의 이용이 가능한 다음 컨텐츠의 미리보기 컨텐츠 클립을 요청할 수 있다.
상기 재생이 임의의 지점에 도달하고, 상기 메모리 내의 잔여 컨텐츠가 현재 선택된 방송 메뉴에서 재생되는 컨텐츠를 위해 제2 특정 스토리지 크기 임계치보다 작을 때, 상기 프리패치 관리자 모듈은 컨텐츠 데이터를 추가로 요청할 수 있다.
상기 컨텐츠는 오디오 데이터, 비디오 데이터 또는 오디오/비디오 데이터를 포함하고, 상기 클라이언트는 컨텐츠의 재생을 위한 방송 메뉴의 선택을 위해 상기 클라이언트에서 이동가능한 사용자 인터페이스 다이얼상의 적어도 하나의 컨텐츠 방송국을 표시할 수 있다.
상기 컨텐츠원으로의 요청들은 비동기식 요청들을 포함하고, 상기 커맨드 채널은 개별 전송층을 포함하고, 적어도 2개의 다른 전송계층을 지원하며, 상기 접속 및 상기 접속의 유지는, 표준 HTTP에 근거하여 이루어질 수 있다.
상기 커맨드 채널 모듈은, 상기 클라이언트와 상기 컨텐츠원 사이에 웹 소켓을 통해 접속하는 프락시(proxy)를 사용하고, 상기 접속이 완료된 후, 상기 프락시로부터 모든 HTTP 요청들을 수신하며, 상기 프락시가, 수신된 HTTP 요청을 파싱하고, HTTP 로컬 풀에 상기 HTTP 요청을 저장하며, 저장되지 않는 다른 HTTP 요청을 상기 웹소켓 접속을 통해 상기 컨텐츠원으로 전송하고, 상기 프락시가, 상기 컨텐츠원으로부터 초기 HTTP 응답을 패치하고, 상기 컨텐츠원으로부터 수신된 응답을 파이핑(piping)하며, 상기 HTTP 로컬 풀 내의 HTTP 요청은 임의의 시간 간격 후에 타임 아웃되고, 삭제될 수 있다.
또한 본 발명의 실시예에 따른 컴퓨터 판독가능 기록매체는, 컨텐츠 재생 방법을 실행하는 컴퓨터 판독가능 기록매체에 있어서, 상기 컨텐츠 재생 방법은, 전자장치가, 컨텐츠를 제공하는 컨텐츠원에 접속하는 단계, 상기 전자장치에서, 상기 컨텐츠에 관련된 방송 메뉴를 실행하기에 앞서, 상기 컨텐츠원으로부터 상기 컨텐츠를 프리패치하는 단계, 및 상기 방송 메뉴의 컨텐츠를 청취하는 동안, 상기 컨텐츠의 프리패치를 위해 복수의 방송 메뉴를 스캐닝하는 단계를 실행한다.
상기 컨텐츠원에 접속하는 단계는, 상기 전자장치가 상기 컨텐츠를 위해, 개방된 상태를 유지하는 오픈 커맨드 채널을 통해 상기 컨텐츠원에 접속하며, 상기 컨텐츠를 프리패치하는 단계는, 상기 복수의 방송 메뉴 중 각 방송 메뉴의 데크 상에 있는 모든 컨텐츠에 대한 미리보기 컨텐츠 클립, 커버 아트 및 메타 데이터를 프리패치하며, 상기 오픈 커맨트 채널은 오픈 웹소켓 커맨드 채널을 포함하고, 상기 컨텐츠원은 서버를 포함할 수 있다.
상기 컴퓨터 판독가능 기록매체는 안테나의 웨이크업 및 웹 접속 시간에 관련된 지연시간을 감소시키기 위해 상기 전자장치로 하트비트 신호를 주기적으로 전송하는 단계, 상기 컨텐츠의 파일 시스템으로부터의 미리보기 컨텐츠 클립을 상기 전자장치 내의 메모리에 로딩하는 단계, 및 임의의 청취 모드 시간 임계치에 도달하기 전까지 상기 미리보기 컨텐츠 클립을 재생하는 단계를 더 실행할 수 있다.
상기 컨텐츠의 재생은 상기 임의의 청취 모드 시간 임계치에 도달하기에 앞서 스캐닝 모드 상태를 유지하고, 상기 임의의 청취 모드 시간 임계치에 도달한 후, 상기 메모리 내의 컨텐츠가 제1 특정 스토리지 크기 임계치보다 작은지 점검하고, 상기 메모리 내의 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 작으면, 컨텐츠 데이터를 추가로 요청할 수 있다.
상기 컴퓨터 판독가능 기록매체는 상기 메모리 내의 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 큰지 판단하고, 상기 메모리 내의 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 크면, 현재 선택된 컨텐츠 방송국의 재생을 위해 이용 가능한 다음 컨텐츠의 미리보기 컨텐츠 클립을 요청하는 단계를 더 포함하며, 임의의 지점에 도달하고, 상기 메모리 내에 컨텐츠를 유지하는 재생이 상기 현재 선택된 방송 메뉴 상에서 재생되는 컨텐츠를 위한 제2 특정 스토리지 크기 임계치보다 작을 때, 컨텐츠 데이터를 추가로 요청할 수 있다.
상기 컨텐츠는 오디오 및 비디오 데이터 중 적어도 하나를 포함하고, 상기 컨텐츠의 제공에 관련된 상기 컨텐츠원으로의 요청은 비동기식으로 이루어지며, 상기 오픈 커맨드 채널은 서로 다른 복수의 전송 방식을 지원하는 분리된 전송층을 포함하며, 상기 접속 및 상기 접속의 유지는, 표준 HTTP에 근거하여 이루어질 수 있다.
상기 컴퓨터 판독가능 기록매체는 상기 전자장치와 상기 컨텐츠원 사이에 연결되는 프락시를 포함하며, 상기 프락시가, 상기 전자장치와 상기 컨텐츠원 사이에서 웹소켓을 통해 접속하는 단계, 상기 웹소켓을 통한 접속이 완료된 후, 상기 프락시가 모든 HTTP 요청들을 상기 전자장치로부터 수신하는 단계, 상기 프락시가, 상기 전자 장치로부터 수신된 HTTP 요청을 파싱하고, HTTP 로컬 풀에 상기 HTTP 요청들의 일부를 저장하며, 저장되지 않는 다른 HTTP 요청들을 상기 웹소켓을 통해 상기 컨텐츠원으로 전송하는 단계, 및 상기 프락시가, 상기 컨텐츠원으로부터 수신된 초기 HTTP 응답을 패치하고, 상기 컨텐츠원으로부터 수신된 응답을 파이핑하는 단계를 더 포함하되, 상기 HTTP 로컬 풀 내의 HTTP 요청은 임의의 시간 간격 후에 타임 아웃되고, 삭제되고, 상기 웹소켓을 통한 접속이 방해받거나 끊길 때, 상기 프락시는 상기 웹소켓을 통해 접속을 재시도할 수 있다.
본 발명의 실시예에 따른 컨텐츠 접속 방법은, 컨텐츠를 제공하는 컨텐츠원과 비동기식 통신 링크를 유지하는 단계, 상기 통신 링크를 통해 다수의 컨텐츠 부분들(multiple pieces of content)을 위한 컨텐츠 정보를 프리패치하는 단계, 및 전자장치에서의 재생을 위해 프리패치 메모리에 상기 프리패치한 컨텐츠 정보를 파싱하는 단계를 포함하되, 상기 컨텐츠 정보는, 상기 다수의 컨텐츠 부분들에 관련된 데이터 집합을 포함한다.
상기 컨텐츠 접속 방법은 사용자의 선택을 위해 상기 프리패치 메모리로부터 상기 프리패치한 컨텐츠 정보를 임시로 표시하는(presenting) 단계, 및 상기 다수의 컨텐츠 부분들에서 선택된 적어도 하나의 컨텐츠를 재생하는 단계를 더 포함할 수 있다.
상기 컨텐츠 접속 방법은 상기 다수의 컨텐츠 부분들에서 각 컨텐츠를 위한 재생 종료 기간에 근거하여 상기 다수의 컨텐츠 부분들 중 적어도 하나에 대한 컨텐츠 정보를 주기적으로 프리패칭하는 단계를 더 포함할 수 있다.
상기 컨텐츠 정보를 프리패칭하는 단계는, 상기 컨텐츠를 위해 라디오 방송 메뉴 데이터를 프리패칭하고, 상기 전자 장치에 상기 데이터를 캐싱하는 단계를 포함할 수 있다.
상기 컨텐츠 정보를 프리패칭하는 단계는, 컨텐츠에 대한 초기 접속 동안 모든 컨텐츠를 위한 컨텐츠 정보를 프리패칭하는 단계를 더 포함할 수 있다.
컨텐츠 정보를 프리패칭하는 단계는, 컨텐츠에 접속을 시작한 후, 선택된 일련의 컨텐츠를 위한 라디오 방송 메뉴 정보를 프리패칭하는 단계를 더 포함할 수 있다.
상기 컨텐츠 접속 방법은 상기 사용자가 재생을 위한 컨텐츠를 선택하는 과정에서 상기 전자장치 상에서 컨텐츠를 스킵할 때, 상기 캐쉬된 정보로부터 컨텐츠 메타데이터를 검색하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따른 전자 장치의 컨텐츠 재생 선택 방법은 복수의 세그먼트 및 적어도 하나의 이동가능한 요소를 포함하는 다이얼을 적어도 하나의 방향으로 회전하는 단계, 및 손가락 제스처 패턴에 근거하여 컨텐츠 미리보기(previewing) 및 컨텐츠 변경을 제어하는 단계를 포함하되, 상기 다이얼은, 상기 전자장치의 터치 스크린상의 상기 손가락 제스처 패턴에 근거해 이동가능하며, 상기 다이얼 상의 상기 복수의 세그먼트는, 다른 하나와 고정된 거리로 떨어진 공간에 위치하고, 상기 터치 스크린상에서 특정 손가락 제스처 패턴에 근거해 공간상 떨어진 거리를 변경할 수 있다.
상기 이동가능한 요소는, 상기 다이얼의 특정 세그먼트를 선택하거나 미리보기하기 위한 적어도 하나의 방향으로 이동하도록 구성되고, 상기 복수의 세그먼트들 각각은 특정 컨텐츠 그룹에 연계되며, 상기 특정 컨텐츠 그룹은 적어도 하나의 음악 방송 메뉴들, 적어도 하나의 비디오 방송 메뉴들, 적어도 하나의 컨텐츠 컬렉션들 중 적어도 하나를 포함할 수 있다.
도 1은 본 발명의 실시예에 따른 통신 시스템을 나타내는 도면,
도 2는 컨텐츠 재생 모듈을 갖는 모바일 장치를 포함하는 시스템의 구조(architecture)를 나타내는 블록다이어그램,
도 3A는 컨텐츠 재생 시스템의 정보 흐름을 나타내는 도면,
도 3B는 컨텐츠 스트리밍에 적합한 2진 집합 포맷(aggregate binary format)을 나타내는 도면,
도 3C는 프리패치 및 청취 버터 다운로드 순서를 나타내는 도면,
도 4는 클라이언트 구조 및 재생 시스템을 나타내는 블록다이어그램,
도 5는 컨텐츠 재생 클라이언트를 위한 컨텐츠 재생 순서를 나타내는 도면,
도 6은 웹소켓 프락시에 대한 HTTP의 예를 나타내는 도면,
도 7은 본 발명의 실시예에 따른 컨텐츠 재생 과정을 나타내는 도면,
도 8은 방송국 선택 및 컨텐츠 재생을 위한 UI의 예를 보여주는 도면,
도 9는 방송국 선택 및 컨텐츠 재생을 위한 UI의 다른 예를 보여주는 도면,
도 10은 재생 선택을 위한 UI 다이얼이 있는 컨텐츠 재생을 위한 구조를 나타내는 도면,
도 11은 재생 선택을 위한 UI 다이얼이 있는 컨텐츠 재생의 흐름을 나타내는 흐름도,
도 12는 UI 다이얼과 상호 작용하기 위한 손가락 움직임을 나타내는 도면,
도 13은 손가락 움직임에 의한 상호 작용과 제1 세그먼트 유형을 위한 UI 다이얼 결과를 예시하여 나타낸 도면,
도 14는 손가락 움직임에 의한 상호 작용과 제2 세그먼트 유형을 위한 UI 다이얼 결과를 예시하여 나타낸 도면,
도 15는 UI 다이얼을 위한 표시 마커 이동을 예시하여 나타낸 도면,
도 16은 UI 다이얼을 예시하여 나타낸 도면,
도 17 내지 도 19는 방송국 관리 및 맞춤형(customization) 선택이 있는 UI를 예시하여 나타낸 도면, 그리고
도 20은 본 발명의 실시예에 따른 컴퓨팅 시스템을 포함하는 정보 처리 시스템을 나타내는 도면이다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 통신 시스템을 나타내는 도면이다.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 통신시스템(10)은 통신망(110) 내에 수신장치(11)와 송신장치(12)를 포함한다.
다시 말해, 통신시스템(10)은 나가는 통신 동작을 시작하는 통신 장치, 즉 송신장치(12)와 통신망(110)을 포함하며, 여기서 송신장치(12)는 통신망(110) 내에서 다른 통신 장치들과 통신 동작을 시작 및 수행하기 위해 사용된다. 예를 들어, 통신 시스템(10)은 송신장치(12)로부터의 통신 동작을 수신하는 통신 장치, 즉 수신장치(11)를 포함한다. 나아가 도 1에 나타내지는 않았지만, 통신 시스템(10)은 다중(multiple) 수신장치(11) 및 송신장치(12)를 포함할 수 있다.
통신망(110)의 구성 및 동작을 위해서는 통신 기지국 및 통신 서버들을 포함하는 무선 통신 인프라와 같은 적절한 회로, 장치, 시스템 또는 이들의 결합이 이루어질 수 있다. 통신망(110)은 적절한 통신 프로토콜을 사용하여 통신을 수행하는 것이 가능하다. 일 실시예로서, 통신망(110)은 예를 들어 전통적인 통신선, 케이블 텔레비전, IEEE 802.11 프로토콜 등을 이용한 와이파이(Wi-Fi), 블루투스, 900 MHz, 2.4 GHz 및 5.6 GHz 통신 시스템 등에 사용되는 고주파 시스템, 적외선(infrared), 다른 로컬 무선 통신 프로토콜, 혹은 이들의 결합을 지원할 수 있을 것이다. 통신망(110)은 무선 및 셀룰러 폰, 그리고 블랙베리 등의 개인 이메일 장치에 의해 사용된 프로토콜을 지원할 수 있다. 이러한 프로토콜은 예컨대, GSM, GSM과 EDGE의 결합, CDMA, 쿼드밴드 및 다른 셀룰러 프로토콜을 포함할 수 있다. 다른 예로서, 장거리(long range) 통신 프로토콜은 와이파이 및 통신 프로토콜에 근거한 VOIP, LAN, WAN, 또는 다른 TCP-IP를 사용하는 호(call)들을 요청하거나 수신하는 프로토콜들을 포함할 수 있다. 수신장치(11) 및 송신장치(12)는 통신망(110) 내에 위치할 때, 채널 13과 같은 양방향 통신 경로 상에서 통신하거나 2개의 단방향 통신 채널들에서 통신을 수행할 수 있다. 송신장치(12) 및 수신장치(11) 모두 통신 동작을 시작하고 시작된 통신 동작을 수신하는 것이 가능하다.
송신장치(12) 및 수신장치(11)는 통신 동작을 위해 신호를 전송하고 수신하기 위한 적절한 장치를 포함한다. 예를 들어, 송신장치(12) 및 수신장치(11)는 모바일 전화장치, 텔레비전 시스템, 카메라, 캠코더, 오디오 및 비디오 성능(capabilities)을 갖는 장치, 착용가능한 장치, 그리고 무선으로 가능한 액세서리 시스템의 도움을 갖거나, 갖지 않는 무선으로 통신 가능한 기타 장치들, 또는 전형적인 통신선을 사용하는 유선 경로들을 경유해서 통신 가능한 장치들을 포함할 수 있다. 통신 동작들은 예를 들어 전화통화 등의 음성 통신, 이메일, 텍스트 메시지, 미디어 메시지 등의 데이터 통신, 비디오 통신, 또는 화상 회의 등의 이들의 결합을 포함하는 적절한 통신 형태를 포함할 수 있을 것이다.
도 2는 컨텐츠 재생 모듈을 갖는 모바일 장치를 포함하는 시스템의 구조를 나타내는 블록다이어그램으로서, 모바일 전자장치의 접속을 유지하고, 재생을 위해 컨텐츠를 초기에 수립하고, 주기적으로 프리패치, 즉 미리 가져오며, 전자장치(120)에서 재생 선택을 위해 항해 다이얼 UI를 제어하기 위한 구조 시스템(100)의 블록다이어그램을 나타낸다.
송신장치(12) 및 수신장치(11)는 모두 전자장치(120)의 특징 일부 및 전부를 포함할 수 있다. 일 실시예로서, 전자장치(120)는 디스플레이부(121), 마이크로폰(122), 오디오 출력부(123), 입력 메커니즘(혹은 부)(124), 통신부(125), 제어회로(혹은 제어부)(126), 카메라 모듈(혹은 카메라)(128), 컨텐츠 재생 모듈(혹은 부)(129) 및 다른 적절한 구성요소들을 포함할 수 있다. 애플리케이션부(127)의 애플리케이션 1-N은 클라우드 서버(130), 통신망(110)에서 제공되거나 얻을 수 있다. 여기서, N은 1보다 크거나 같은 양의 정수이다.
본 발명의 실시예에 따라, 오디오 출력부(123)에 의해 채택된 모든 애플리케이션들, 디스플레이부(121), 입력 메커니즘부(124), 통신부(125) 및 마이크로폰(122)은 제어부(혹은 제어회로)(126)에 내부적으로 연결되고 관리될 수 있다. 일례로, 음악을 다른 튜닝 장치들로 전송하는 것이 가능한 휴대용(handheld) 음악 재생기(player)는 전자장치(120) 내에 통합될 수 있을 것이다.
오디오 출력부(123)는 전자장치(120)의 사용자에게 오디오를 제공하기 위한 적절한 오디오 구성요소를 포함할 수 있다. 예를 들어, 오디오 출력부(123)는 전자장치(120) 내에 구비된 모노 또는 스테레오 스피커와 같은 적어도 하나의 스피커들을 포함할 수 있다. 오디오 출력부(123)는 전자장치(120)에 원격 결합된 오디오 구성요소를 포함할 수도 있다. 예를 들어, 오디오 출력부(123)는 잭(jack)이 있는 전자장치(120)에 결합되는 것과 같이 유선으로 통신 장치에 결합되거나, 블루투스 헤드폰 또는 블루투스 헤드셋과 같이 무선으로 결합될 수 있다.
디스플레이부(121)는 사용자에게 시각적인 표시를 제공하기 위한 적절한 화면 또는 프로젝션 시스템을 포함한다. 예를 들어, 디스플레이부(121)는 전자장치(120)에 통합된 LCD 화면과 같은 화면을 포함한다. 다른 예로서, 디스플레이부(121)는 비디오 프로젝터와 같은 전자장치(120)로부터 떨어진 화면(또는 표면)상에 컨텐츠를 재생하기 위한 이동 디스플레이 또는 프로젝팅 시스템을 포함할 수 있다. 디스플레이부(121)는 제어부(126)의 지시 하에 통신 동작과 관련한 정보 또는 이용가능한 미디어 선택과 관련한 정보 등의 컨텐츠를 표시하기 위해 동작한다.
입력 메커니즘부(124)는 가령 입력부로서 전자장치(120)로 사용자 입력 또는 지시를 제공하기 위한 적절한 메커니즘 또는 사용자 인터페이스(UI)를 포함한다. 입력 메커니즘부(124)는 버튼, 키패드, 다이얼, 클릭 휠, 또는 터치 스크린과 같은 다양한 형태를 가질 수 있다. 입력 메커니즘부(124)는 멀티 터치 스크린을 포함할 수 있다.
통신부(혹은 통신회로)(125)는 도 1의 통신망(110)과 같은 통신회로에 연결되고, 전자장치(120)로부터의 통신 동작 및 미디어를 통신망 내의 다른 장치들로 전송하기 위해 동작하는 적절한 통신 회로일 수 있다. 통신부(125)는 예를 들어, IEEE 802.11 프로토콜 등의 와이파이, 블루투스, 900 MHz, 2.4 GHz, 5.6 GHz 통신 시스템 등의 고주파 시스템과 같은 적정 통신 프로토콜, 적외선, GSM, GSM과 EDGE의 결합, CDMA, 쿼드밴드 및 다른 셀룰러 프로토콜, VOIP, TCP-IP, 또는 다른 적정 프로토콜을 사용해서 통신망과 상호 동작하는 것이 가능하다.
통신부(125)는 적정한 통신 프로토콜을 사용해서 통신망을 구축하기 위해 동작할 수 있다. 예를 들어, 통신부(125)는 다른 통신 장치들에 접속하기 위해 단거리 통신 프로토콜을 사용해서 단거리 통신망을 형성할 수 있다. 예를 들어, 통신 회로(125)는 블루투스 헤드폰(headset)이 있는 전자장치(120)에 결합하기 위해 블루투스 프로토콜을 사용해서 로컬 통신망을 생성하여 동작할 수 있다.
제어부(126)는 전자장치(120)의 동작 및 기능을 제어할 수 있다. 제어부(126)는 예를 들어, 프로세서, 전자 장치(120)의 다른 구성요소들로 지시를 보내기 위한 버스, 메모리, 스토리지(storage), 또는 전자장치(120)의 동작을 제어하기 위한 다른 적정 구성요소를 포함한다. 프로세서는 디스플레이부를 구동하고, 사용자 인터페이스로부터 수신된 입력들을 처리할 수 있다. 메모리 및 스토리지는 예를 들어 캐쉬(cache), 플래시 메모리, 램 및/또는 램/디램을 포함할 수 있다. 메모리는 특히 동작 시스템, 사용자 인터페이스 기능 및 프로세서 기능과 같은 장치 애플리케이션을 위한 펌웨어를 저장하는 데에 사용될 수 있다. 메모리는 전자장치(120)가 통신 동작을 수행하는 다른 장치에 관련된 정보를 저장하기 위해 동작할 수 있다. 예를 들어, 메모리는 통신 동작에 관련된 접속 정보를 저장하거나, 사용자에 의해 선택된 다른 미디어 유형 및 미디어 아이템에 관련된 정보를 저장할 수 있다.
제어부(126)는 전자장치(120)에서 실행된 하나 이상의 애플리케이션의 동작을 수행하도록 제어한다. 적정 개수 또는 적정 유형의 애플리케이션들이 실행될 수 있다. 물론 다음은 다른 애플리케이션들을 열거하는 것이긴 하지만, 애플리케이션들의 일부 또는 전부는 하나 또는 그 이상으로 결합될 수 있는 것으로 이해해도 좋을 것이다. 예를 들어, 전자장치(120)는 ASR(Automatic Speech Recognition) 애플리케이션, 대화 애플리케이션, 맵 애플리케이션, 퀵타임(QuickTime), 모바일뮤직닷앱(MobileMusic.app), 또는 모바일비디오닷앱(MobileVideo.app)과 같은 미디어 애플리케이션, 페이스북(Facebook), 트위터(Twitter) 등과 같은 소셜 네트워킹 애플리케이션, 인터넷 브라우징 애플리케이션 등을 포함할 수 있다. 전자장치(120)는 메시징 애플리케이션, 메일 애플리케이션, 음성메일 애플리케이션, 채팅과 같은 즉흥적(instant) 메시징 애플리케이션, 화상통화 애플리케이션, 팩스 애플리케이션 또는 적정 통신 동작을 수행하기 위한 다른 다양한 애플리케이션을 더 포함할 수 있다.
전자장치(120)는 마이크로폰(122)을 포함한다. 예를 들어, 전자장치(120)는 통신 동작 중에, 또는 통신 동작을 확립하는 수단으로서, 또는 물리적인(physical) 사용자 인터페이스를 사용하는 것의 대안으로서, 사용자가 음성 제어 및 애플리케이션부(127)의 애플리케이션 1-N의 항해를 위해 목소리와 같은 음성을 전송하도록 한다. 마이크로폰(122)은 전자장치(120)에 통합되거나, 전자장치(120)에 원격 결합될 수 있다. 예를 들어, 마이크로폰(122)은 유선 헤드폰에 통합될 수 있고, 무선 헤드폰에 통합될 수 있으며, 원격제어 장치 등에 통합될 수 있다.
카메라(혹은 촬상부, 카메라 모듈)(128)는 정지 및 비디오 영상을 캡쳐하기 위한 기능, 편집 기능, 사진/비디오 등을 전송하고 공유하는 통신 상호운용(interoperability)을 포함한다.
컨텐츠 재생부(혹은 컨텐츠 재생 모듈)(129)는 오디오, 오디오/비주얼(visual), 비주얼, 그래픽 영상 등의 컨텐츠를 처리하기 위한 과정 및/또는 프로그램들을 포함한다. 컨텐츠 재생부(129)는 도 3A에서와 같은 클라이언트(305)를 포함하며, 가령 재생 모듈은 도 4에 도시된 바와 같다.
전자장치(120)는 통신 동작을 수행하기에 적절한 다른 구성요소들을 포함한다. 예를 들어, 전자장치(120)는 전원공급장치(power supply), 포트들, 또는 호스트 장치를 결합하기 위한 인터페이스들, 온/오프(ON/OFF) 스위치 등의 부수적인 입력 메커니즘, 또는 다른 다양한 구성요소들을 포함할 수 있다.
도 3A는 컨텐츠 재생 시스템의 정보 흐름을 나타내는 도면이다.
전자장치(120) 등의 클라이언트(305)를 채택하는 것은 커맨드 채널(340)을 사용해서 가령 셀룰러 신호 등의 무선 통신 링크와 같은 통신 링크를 통해, 자원 또는 컨텐츠원(혹은 백앤드) 서버(320)(이하, 서버라 함) 등의 외부 장치를 사용해서 모바일 장치 컨텐츠 재생기와 같은 클라이언트 상에서의 본질상 일시적인 컨텐츠 재생 등의 가속화 성능을 제공한다. 시스템 구조는 원(raw) 컨텐츠에 접속하는 것 외에 대부분의 자원 관리를 위한 프락시로서 동작하는 공증(public authorization) 또는 라우팅 API 서버(310)를 포함하고, 서버(320)와 통신을 수행하기 위해 사설 API(HTTP)(370)들을 사용할 수 있다.
서버(320)는 음악(music), 노래들(songs), 비디오, 그래픽, 정보 등을 포함하는 선택가능한 컨텐츠, 구매가능한 컨텐츠, 무료 컨텐츠, 배분 컨텐츠(distributed content) 등의 컨텐츠를 획득하기 위해 클라이언트(305)를 위한 컨텐츠 분배망(330)과 통신하게 된다. 클라이언트(305)는 가령 HTTP 등의 이미지 요청들(360)과 HTTP와 같은 오디오 파일 요청들(365)을 사용해서 컨텐츠 분배망(330)과 통신할 수 있다. 클라이언트(305)는 컨텐츠 분배망(330)으로부터 이미지 파일, 오디오 파일과 같은 원 컨텐츠에 직접 접속한다. 본 발명의 실시예는 다른 장르의 라디오 방송국 또는 컨텐츠 방송국, 다른 재생목록들, 모의(simulated) 라디오 방송국 등의 방송국(high bursts of station) 변경을 지원하고, 모바일 장치 스토리지 및 통신 대역폭의 효율적인 사용을 제공한다. 또한 본 발명의 실시예는 휴식(breadth)과 이용가능한 컨텐츠의 다양화를 위해 노래들과 일련의 방송국들과 같은 컨텐츠의 카테고리를 지원한다. 여기서, 방송국(station)은 가령 방송 메뉴 또는 방송 항목 등이 될 수 있다.
클라이언트(305) 및 서버(320)는 노래 파일 URL 및 커버 아트 URL을 포함하는 노래 메타데이터와 같은 컨텐츠를 획득하고, 이의 과정에서 발생되는 지연시간(latency)을 감소시키기 위해 커맨드 채널(34)로서 오픈 웹소켓을 갖는다. 본 발명의 실시예에 따라 가령 방송국 다이얼을 스피닝(spinning)/튜닝하는 것, 스캐닝 인터페이스를 사용해서 스캐닝하는 것과 같이 다수의 다른 방송국들을 스캐닝하는 사이에 구별이 이루어지며, 프리패치하는 노래 데이터(혹은 이미지 또는 오디오)와 같은 정보는 클라이언트(305) 상에서 하나 이상의 방송국들을 사용자가 재생(혹은 실행)하려 시도하기 전에 프리패치된다.
클라이언트(305)는 모바일 HTTP 요청들(350)을 위한 지연시간을 감소시키기 위하여 서버(320)에 대한 오픈 웹소켓 커맨드 채널(340)을 활용한다. 대개, 모바일 HTTP 요청들을 위한 지연시간은 2가지 요소를 갖는다. 하나는 클라이언트 라디오 안테나를 깨우는(wake up) 시간이고, 다른 하나는 HTTP 접속 시간이다. 본 발명의 실시예에 따라, 웹소켓 접속(340)을 활용하는 것은 하트비트(heartbeat) 신호를 주기적으로 전송해서, 연속적으로 개방되고 활성화되며, 이를 통해 안테나 웨이크업 시간 및 연계된 지연시간을 감소시킨다. 클라이언트(305)로부터 서버(320)로의 서버 요청들은 비동기식(asynchronous)이다.
본 발명의 실시예에 따라 클라이언트(305)는 컨텐츠를 프리패치하고, 컨텐츠를 위해 방송국들을 스캔한다. 여기서, 프리패칭하고 스캐닝하기 위해 사용된 조건은 현재 재생되는 노래, 가령 다음의 데크 상(on-deck)의 노래, 재생 가능한 컨텐츠 일부인 미리보기 클립, 스캔 모드, 청취 모드 및 청취 종료(expiration)를 포함한다.
현재 재생되는 노래는 현재 재생되는 방송국 상에서 재생되는 현재 노래이다. 현재 재생되는 방송국 상에서 재생되는 않는 노래를 위한 데크 상의 노래는 재생될 다음 노래이다. 현재 재생되는 방송국을 위한 데크 상의 노래는 현재 재생되는 노래 이후에 이어지는 노래이다.
미리보기 클립은 방송국의 데크 상의 노래의 다음 N 초, 가령 미리보기 클립 길이를 포함하며, 여기서 N은 양수이다. 미리보기 클립은 제1 N초(혹은 첫번째 N초)이다. 본 발명의 실시예에 따라 사용자가 최근에 방송국을 시청한 경우, 미리보기 클립은 노래의 중간에서 N 초가 될 수 있다. 미리보기 클립들은 전자장치(120)에서 캐쉬, 램 등과 같은 로컬 메모리가 아니라, 파일 시스템에 저장된다. 파일 시스템은 컨텐츠 분배망(330), 클라이언트(305) 또는 외부 저장 장치에 위치할 수 있다.
스캔 모드를 살펴보면, 클라이언트(305)에서 실행되는 재생기 애플리케이션이 재생의 제1 X초 동안 새로운 방송국으로 변경되면, 방송국은 스캔 모드 상태에 있는 것으로 간주된다. 여기서, X는 양수이다. 스캔 모드 동안에 노래 오디오 데이터를 위한 추가적인 요청들은 없게 된다. 만약 스캔 모드 상태에 계속해서 있는 동안 방송국이 변경되거나 멈추게 되면, 방송국을 위한 현재 재생 진행 위치는 변경되지 않고 유지된다. 방송국을 다시 재생하면, 마지막으로 시작되었던 동일 위치로부터 재생이 시작된다.
청취 모드를 살펴보면, 방송국이 X초 동안 재생된 후, 모드는 청취 모드로 변경된다. 청취 모드에서, 클라이언트(305)의 메모리 내의 버퍼 등에 남아있는 오디오 버퍼의 크기가 최소 임계치보다 작으면, 더 많은 오디오 데이터가 클라이언트(305)로부터 서버(320)로 요청된다. 청취 종료 동안, 방송국이 청취 모드 상태에 있고, 다른 방송국으로 변경될 때, 내부에 구비된 타이머가 현재 노래를 위해 동작을 시작한다. 타이머 주기는 가령 10분으로 고정된 주기이거나 현재 노래의 잔여 시간에 근거하여 설정될 수 있다. 타이머 주기가 지나면, 노래 재생은 청취 종료에 도달하고, "소비된 것(consumed)"으로 간주된다. 본 발명의 실시예에 따라 판단(또는 결정)은 방송국을 위한 새로운 데크 상의 노래를 위해 이루어지며, 새로운 미리보기 클립이 패치된다.
클라이언트(305)에 의한 것을 살펴보면, 콜드 스타트(cold start) 기능을 활용해서 모든 방송국들의 데크 상의 모든 노래들을 위한 미리보기 클립, 커버 아트, 및 메타데이터를 효율적으로 패치하기 위하여, 서버(320)는 방송국 정보의 모두에 대한 통합된 이진 집합(canned aggregate binary)을 유지한다.
도 3B는 컨텐츠 스트리밍에 적합한 2진 집합 포맷(aggregate binary format)을 나타내는 도면이다.
본 발명의 실시예에 따라 도 3B에 도시된 포맷은 컨텐츠 스트리밍에 적합하다. 컨텐츠 파일 시작 때 노래들을 위한 프리패치된 데이터는 전체 바이너리 중 나머지가 완전히 다운로드되기 전에 처리될지 모른다. 전체 바이너리가 어떤 크기보다 작게 유지되기 위해서, 다중(혹은 복수의) 부분들로 분할될 수 있다. 물론 전체 바이너리 포맷은 도 3B에 제공된 예와 다를 수 있을 것이다. 다른 예로서, 전체 바이너리는 각 노래 섹션을 진행하는 단순 헤더 구조를 포함할 수 있다. 가령, GZIP과 같은 유틸리티는 사용의 편의상 일련의 파일들을 축적하기 위해 활용될 수 있다.
클라이언트(305)가 방송국 모두를 위한 데이터를 패치할 수 있는 기회를 제공하는 이전의 재생 이후, 클라이언트(305)는 가령 도 2의 컨텐츠 재생부(129)를 이용해서 컨텐츠 재생이 다시 시작될 때, 웜 스타트(warm start) 기능을 사용하고, 저장된 모든 미리보기 클립들이 열거되게 된다. 어떤 노래들이 청취 종료에 도달하면, 노래들은 제거되고, 새로운 노래 및 미리보기 클립을 위한 요청들이 클라이언트(305)에 의해 대기된다. 완료되지 않은 미리보기 클립들을 위한 노래 ID들 목록이 수집되고, 이러한 노래들을 노래 수집과 같은 카탈로그에서 여전히 유효한 노래들이라는 것을 확인하기 위해 서버(320)로 전송된다. 본 발명의 실시예에 따라, 어떤 노래들이 카탈로그에서 제거되면, 새로운 노래들을 위한 요청과 미리보기 클립들이 그것들을 대체하기 위한 클라이언트(305)에 의해 생성(혹은 발생)된다.
도 3C는 프리패치 및 청취 버퍼 다운로드 순서를 나타내는 도면이다.
본 발명의 실시예에 따라, 클라이언트(305) 상의 방송국 재생을 위한 기본 순서는 다음을 포함한다. 본 발명의 실시예에 따라 로드 미리보기 클립(Load Preview Clip)은 파일 시스템으로부터의 저장된 미리보기 클립을 클라이언트(305)의 메모리 내 오디오 버퍼 내로 복사하는 것을 포함한다. 청취 모드 임계치는 특정 청취 모드 임계치가 가령 특정 시간, 특정 양의 컨텐츠 등에 도달하기 전까지 메모리 내 미리보기 클립을 재생하는 것을 포함한다. 특정 청취 모드 임계치가 도달하기 전에, 방송국은 스캔 모드 상태로 간주된다. 스캔 모드 상태에서 추가적인 오디오 데이터 요청은 없다. 본 발명의 실시예에 따라 노래는 스캔 모드 상태에 있는 동안, 아직 "듣는 것(listened to)"으로 간주되지 않는다. 청취 모드 임계치에 일단 도달하면, 남아있는 오디오 버퍼 컨텐츠가 가령 버퍼 내의 컨텐츠 크기/양 등의 최소값 또는 임계치보다 작은지 판단한다. 만약 오디오 버퍼 컨텐츠가 최소값 또는 임계치보다 작으면, 이는 대개 스캔 모드에서 청취 모드로 변경될 때 발생할 수 있는데, 서버(320)로 클라이언트(305)에 의한 더 많은 오디오 데이터의 요청들이 발생하게 된다.
리퀘스트 넥스트 송 미리보기 클립(Request Next Song Preview Clip)은 제1 오디오 청크가 미리보기 클립에 이어 수신되면, 컨텐츠/데이터의 크기/양과 같은 남아있는 오디오 버퍼가 자동으로/역동적으로 선택, 할당, 결정될 수 있는 최소값 또는 임계치보다 큰지 판단한다. 남아있는 오디오 버퍼 컨텐츠가 최소량 또는 임계치보다 크면, 현재 방송국의 데크 상 노래의 미리보기를 위한 요청이 클라이언트(305)에 의해 발생된다.
리퀘스트 넥스트 오디오 청크(Request Next Audio Chunk)는 남아있는 오디오 버퍼 컨텐츠가 어떤 최소값 또는 임계치 크기/양보다 작은 지점에 이르게 될 때, 더 많은 오디오 데이터를 위한 요청들이 클라이언트(305)에 의해 발생되는 것을 포함한다. Request Next Audio Chunk 과정은 노래의 끝에 도달하기 전까지 반복된다.
도 4는 클라이언트 구조 및 재생 시스템을 나타내는 블록다이어그램이다.
본 발명의 실시예에 따라, 시스템(400)은 도 3A에서와 같이 클라이언트(305)에 포함될 수 있는 구성요소 또는 공증 또는 라우팅 API 서버(310)와 같은 서버 또는 컨텐츠 분배망(330)과 같은 네트워크에서 오프로드(offloaded)/실행되는 구성요소를 포함한다. 시스템(400)의 구성요소는 커맨드 채널 모듈(410), 방송메뉴 관리자 모듈(420), 뮤직 플랫폼 미디어 엔진(430), 라디오 서비스 모듈(440), 프리패치 관리자 모듈(450), 노래 다운로드 관리자 모듈(460) 및 이미지 캐쉬(470)를 포함한다. 커맨드 채널 모듈(410)은 공증 또는 라우팅 API 서버(310)와 통신한다. 노래 다운로드 관리자 모듈(460)은 컨텐츠 분배망(330)과 통신한다.
본 발명의 실시예에 따라 모든 방송국은 그와 연계된 적어도 2개의 노래들을 갖는다. 각 노래는 다음의 3가지 방송국 노래 상태들, 언나운 상태(Unknown), 메타데이터로드 상태(MetadataLoaded) 및 버퍼링 상태(Buffered) 중 하나에 속할 수 있다. 언나운 상태는 노래가 알려지지 않고, 노래를 위한 어떠한 메타데이터도 노래 다운로드 관리자 모듈(460)에 의해 여전히 얻을 수 없는 것을 나타낸다. 메타데이터로드 상태는 노래 URL 및 커버 아트 URL을 포함하는 노래를 위한 메타데이터가 취득되지만, 충분한 오디오 데이터가 노래 다운로드 관리자 모듈(460)에 의해 여전히 취득되지 않는 것을 나타낸다. 버퍼링 상태는 재생을 시작하거나 지속하기 위해 요청되는 오디오 버퍼 컨텐츠의 최소량뿐 아니라 노래를 위한 메타데이터가 클라이언트(305)에서 이용가능한 것을 나타낸다.
지연시간을 감소시키기 위하여, 웹소켓은 커맨드 채널 모듈(410)에서 공증 또는 라우팅 API 서버(310)로 컨텐츠 파일들 이외에 서버 요청들을 위해 개방된 상태를 유지한다. 공증 또는 라우팅 API 서버(310)로의 서버 요청들은 도 3A의 커맨드 채널(340) 등의 비동기식 커맨드 채널을 활용하여 비동기화된다. 요청이 있은 다음, 동일 제어 흐름에서 응답을 기다리는 일반적인 HTTP 요청 대신, 웹소켓 비동기식 커맨드 채널에서는 대조적으로, 메커니즘은 가령 RPC 호(call)가 아니라 전 이중(full-duplex) 통신으로 메시지를 전송하고 수신하기 위해 채택된다.
본 발명의 실시예에 따라, 파일 시스템에서 전체 노래의 추적을 지속하는 것은 불가능한데, 분명한 차이는 미리보기 클립들과 현재 재생되는 버퍼 컨텐츠 사이에서 이루어진다는 것이다. 미리보기 클립은 현재 재생되는 노래 이외에 모든 노래들을 의미하고, 버퍼(4410)에 반대되는 것으로, 파일 시스템에 저장될 뿐이다. 현재 재생되는 버퍼 컨텐츠는 현재 재생되는 노래를 의미하고, 버퍼(441)로서 유지될 뿐이다. 사용자가 다음 노래를 선택해서 방송국이 변경되거나 노래의 끝에 이르기 때문에 노래들을 변경할 때, 오디오 데이터는 버퍼(441)와 프리패치 인벤터리(455)로부터의 프리패치 클립 파일 사이에서 바뀌게 된다(442).
커맨드 채널 모듈(410)은 공증 또는 라우팅 API 서버(310)로 인터페이스를 제공하며, 웹소켓 전송계층(418) 및 HTTP 전송계층(415)과 같은 전송계층을 포함한다. 컨텐츠 접속 이외의 모든 서버 요청들은 커맨드 채널 모듈(410)을 통해 취급된다. 커맨드 채널 모듈(410)은 분리 전송층을 사용해서 다중 전송계층 지원을 제공하며, 커맨드 채널을 위한 다른 2개 유형의 전송계층을 지원한다. 커맨드 채널 모듈(410)의 전송층은 다른 종류의 프로토콜/전송계층 상에서 JSON(JavaScrip Objet Notation)을 전송 및 수신하는 것이 가능하다. 웹소켓 전송계층(410)은 성능상의 이유로 인해 웹소켓을 사용하는 선호하는 전송계층이다. HTTP 전송계층(415)은 도 3A의 클라이언트(305)가 공증 또는 라우팅 API 서버(310)에 웹소켓 접속하는 것이 불가능하면 이용되는데, 커맨드 채널 모듈(410)은 HTTP 전송계층(415)으로 되돌아간다. HTTP 전송계층(415)은 웹소켓이 불가능한 경우 이용될 수 있다.
클라이언트(305)는 사용자가 UI의 라디오 방송국 다이얼 상에서 손가락을 이용할 때에, "신속한 변경 준비(Ready for Quick Change)" 모드를 활용한다. "Ready for Quick Change" 모드 상태에 있는 동안, 주기적인 하트비트 신호가 전송되는데, 이를 통해 클라이언트(305)가 라디오 안테나를 활성화 상태로 유지하게 되고, 그 결과 서버 요청들 내의 지연시간은 감소하게 된다.
커맨드 채널 모듈(410)의 전송층은 JSON을 전송하고 수신하는 등의 동작을 지원한다. 커맨드 채널 모듈(410)의 요청 방식들은 자바 형태(Primitives) 및 대상들(objects)로 취급된다. 콜백 방식들은 응답 대상들을 지원한다. 커맨드 채널 모듈(410)은 자바 오브젝트들과 JSON 사이의 전후진(back and forth) 변환을 다룬다.
커맨드 채널 모듈(410)은 피크(Peek), 넥스트(Next), 스탑(Stop), 베리파이송(Verifysongs) 및 레지스터 콜백(Register Callback)과 같은 방법 또는 과정을 포함한다. 피크는 하나의 방송국을 위한 다음 노래를 얻기 위해 프락시로서 동작하기 위해 공증 또는 라우팅 API 서버(310)로 요청을 전송하는 것을 포함한다. 넥스트는 공증 또는 라우팅 API 서버(310)로 요청을 전송하는 것을 포함하는데, 공증 또는 라우팅 API 서버(310)는 뮤직 플랫폼 미디어 엔진(430)에 의해 현재 노래를 재생하는 시작을 나타내는 서버(320)에 대한 프락시로서 동작한다. 서버(320)는 데크 상 노래뿐 아니라 현재 노래를 되돌려야한다.
스탑은 서버(320)에 대한 프락시로서 동작하는 공증 또는 라우팅 API 서버(310)로 요청을 전송하는 것을 포함하며, 방송국 재생을 멈추는 것을 나타낸다. 베리파이송은 노래들이 여전히 유효한 노래들임을 확인하기 위하여 서버(320)에 대한 프락시로서 동작하기 위한 공증 또는 라우팅 API 서버(310)로 노래 ID들의 목록을 전송하는 것을 포함한다.
레지스터 콜백은 서버(320)가 전형적으로 요청에 응답해서 JSON 메시지를 전송할 때, 발생하도록 청취자를 등록하는 것을 포함한다.
방송메뉴 관리자 모듈(420)은 방송국 및 현재 노래 및 데크 상(혹은 다음) 노래의 상태를 관리한다. 방송메뉴 관리자 모듈(420)은 커맨드 채널 모듈(410)의 주요 소비자이다. 방송메뉴 관리자 모듈(420)은 노래가 청취 종료에 도달할 때 관리를 돕기 위한 노래 관리 도움 오브젝트(421)를 포함하며, 방송국 상에서 더 이상 현재로 간주되지 않는다.
방송메뉴 관리자 모듈(420)은 커맨드 채널 콜백(416) 및 노래 관리 오브젝트(421) 등의 특징을 제공한다. 가령 노래 메타데이터 요청(417) 등의 커맨드 채널 모듈(410)로 요청들을 전송하는 것에 더하여, 방송메뉴 관리자 모듈(420)은 송메타데이터(SongMetadata) 청취자로서 등록된다. 방송메뉴 관리자 모듈(420)은 공증 또는 라우팅 API 서버(310)로부터 송메타데이터 메시지를 수신할 때, 방송메뉴 관리자 모듈(420)은 방송국 및 송(song) 테이블을 갱신하고, 현재 재생되는 노래에 의존해서, 오디오 데이터를 다운로드하기 위해 프리패치 관리자 모듈(450) 또는 라디오 서비스 모듈(440)을 트리거링한다.
노래 관리 오브젝트((421)는 트랙 송 소비/타임아웃을 지원하고, 그 노래들의 트랙이 스캐닝 모드 상태에 있는 동안 "미리보기 상태(previewed)"인 것과 반대로, 청취 모드 상태에 있는 동안 "재생 상태(played)" 가 되도록 유지하는 도움 유틸리티(helper utility)이다. 일정 기간(혹은 시간) 후에, 하나의 노래가 재생, 예를 들어 고정된 기간 또는 노래 길이의 일부 요인 동안 "played"된 후, 노래 관리자 모듈(421)은 시스템으로부터 노래를 제거한다. 예를 들어, 데이터베이스 테이블을 정리하거나, 어떤 프리패치 파일을 제거한다. 만약 필요하다면, 어떤 상응하는 방송국의 다음 노래로 진행한다. 방송국 관리자는 451에서의 노래 메타데이터를 라디오 서비스 모듈(440)로 전송하고, 456에서 프리패치 관리자 모듈(450)로 전송한다. 방송메뉴 관리자 모듈(420)은 452에서 라디오 서비스 모듈(440)로부터 겟커런트송(GetCurrentSong) 또는 어드밴스송(AdvanceSong) 요청을 수신하며, 457에서 프리패치 관리자 모듈(450)로부터 겟커런트송(GetCurrentSong) 및 겟온데크송(GetOnDeckSong) 요청들을 수신한다.
프리패치 관리자 모듈(450)은 콜드스타트 벌크 다운로드(Cold-start Bulk Download), 프리패치 송(Prefetch Song) 및 체크온데크프리패치(CheckOnDeckPrefetch)와 같은 기능을 사용해서 프리패치를 수행한다. 콜드스타트 벌크 다운로드는 가령 도 3B에서와 같이 방송국들의 제1 송 메타데이터, 미리보기 클립, 커버 아트 모두를 포함하는 전체 바이너리를 다운로드하는 과정을 포함한다. 프리패치 관리자 모듈(450)은 방송국 데이터가 내부에 스트리링될 때, 해당 데이터를 파싱하고, 방송국/송 테이블, 이미지 캐쉬(470) 및 프리패치 인벤터리(455)를 실장한다(populate). 프리패치 관리자는 442에서 라디오 서비스 모듈(440)로부터 프리패치 클립들을 로드/저장한다.
프리패치 송은 노래의 미리보기 클립 및 아트 커버를 다운로드하는 과정을 포함하고, 프리패치 인벤터리(455) 및 이미지 캐쉬(470)에 그것들을 저장하는 과정을 포함한다. 체크온데크프리패치는 라디오 서비스 모듈(440)이 점차적으로(progressively) 하나의 노래를 다운로드하고, 459에서 노래 청크 요청에 근거해 오디오 청크를 수신할 때 이용되고, 현재 재생되는 노래가 충분한 버퍼(혹은 컨텐츠)가 남아 있는지 점검하기 위해 사용되는 과정을 포함한다. 현재 재생되는 노래가 남아있는 충분한 버퍼를 가지고 있고, 다음(혹은 데크상) 노래가 아직 프리패치되지 않았다면, 노래 프리패치 요청이 458에서 발생된다.
라디오 서비스 모듈(440)은 방송국의 연속적인 재생을 제공한다. 다음 예로서, 라디오 서비스 모듈(440)은 재생을 위한 메인 허브이고, 뮤직 플랫폼 미디어 엔진(430), 방송메뉴 관리자 모듈(420), 프리패치 관리자 모듈(450), 그리고 노래 다운로드 관리자 모듈(460) 사이에 상호 동작을 관리한다. 라디오 서비스 모듈(440)은 뮤직 플랫폼 미디어 엔진(430)과의 상호 작용, 버퍼(441), 재생 제어 방법들, 방송메뉴 관리자 모듈(420)과의 상호작용, 그리고 프리패치 인벤터리(455)를 사용하는 것 등의 기능들을 포함한다.
뮤직 플랫폼 미디어 엔진(430)과 상호작용하는 기능은 436에서 입력스트림(InputStram)을 생성하고 뮤직 플랫폼 미디어 엔진(430)으로 전송해서 뮤직 플랫폼 미디어 엔진(430)을 구동하는 라디오 서비스 모듈(440)을 포함한다. 라디오 서비스 모듈(440)은 나아가 435에서 모든 미디어 이벤트 콜백들을 다룬다.
버퍼(441)는 다음과 같은 경우 이용된다. 라디오 서비스 모듈(440)은 버퍼(441)로서 뮤직 플랫폼 미디어 엔진(430)으로 퉁과되는 436에서 입력스트림을 실행한다. 재생 제어 방법들은 플레이, 스탑, 스킵, 방송국 변경 등과 같이 재생을 제어하기 위해 API들에 노출되는 라디오 서비스 모듈(440)을 포함한다. 이러한 방법들은 클라이언트(305)의 재생기 UI 및 위젯에 의해 이용된다.
라디오 서비스 모듈(440)은 현재 노래를 취득하고, 다음 노래로 나아가기 위해 방송메뉴 관리자 모듈(420)을 호출해서 방송국 관리자(420)와 상호 동작한다. 라디오 서비스 모듈(440)은 노래 메타데이터가 커맨드 채널 모듈(410)을 통해 공증 또는 라우팅 API 서버(310)에 의해 416에서 제공될 때 이용되는 방송국 관리자 콜백을 실행한다. 콜백은 라디오 서비스 모듈(440)이 방송국의 현재 노래에 접근을 시도하는 드문 경우에 이용되지만, 방송메뉴 관리자 모듈(420)은 여전히 접속하지는 않는다.
라디오 서비스 모듈(440)은 프리패치 클립들을 로드하고 저장하기 위해 프리패치 인벤터리(455)를 이용한다. 라디오 서비스 모듈(440)이 새로운 노래의 재생을 시작할 때, 라디오 서비스 모듈(440)은 그 노래를 위한 어떤 프리패치된 오디오 데이터를 버퍼(441)로 로드하기 위해 프리패치 인벤터리(455)를 깨우게 된다(invoke). 라디오 서비스 모듈(440)은 노래가 끝나기 전에 노래의 재생을 멈출 때, 프리패치 관리자 모듈(450)은 버퍼(441) 내에 사용되지 않는 오디오 데이터를 지속되는 미리보기 클립(persistent preview clip) 속에 저장하기 위해, 프리패치 인벤터리(455)를 이용한다.
클라이언트(305)는 나아가 안드로이드 범용 이미지 로더, 송 다운로드 매니저, 이미지 캐쉬(470), 서버 어카운트(server account)와의 통합을 위한 인증 모듈과 같은 이미지 캐쉬를 포함한다.
클라이언트(305)는 즉흥적인 방송국 시작(instant station start)을 제공하는 서버-클라이언트 상호 동작을 위한 오픈 웹소켓 커맨드 채널 기능을 채택하는데, 클라이언트(305)는 컨텐츠 분배망(330)과 같은 컨텐츠 전송망(CDN)으로부터 하나의 커다란 파일 내에 오디오 및 앨범 이미지와 같은 모든 방송국을 위한 미리보기들을 프리패치한다. 클라이언트(305)는 가속화된 방송국 변경을 제공하는데, 여기서, 가속화된 방송국 변경은 클라이언트(305)가 도 3A에서와 같은 커맨드 채널(340)을 통해 커맨드들의 파이프라이닝을 위해, 프락시로서 동작하는 공증 또는 라우팅 API 서버(310)를 통해 서버(320)에 대한 오랜 라이브 접속(long live connection)을 유지하는 것을 의미한다. 클라이언트(305)는 가령 컨텐츠 채널들과 같은 컨텐츠 스트리밍을 위해 2차(혹은 부가적인)(secondary) 접속을 이용한다. 2차 접속은 모바일 망에서 스트리밍 요청들에 대한 부가-제2 응답을 허락한다.
네트워크 및 OS 상의 지연시간을 감소시키기 위하여, 공증 또는 라우팅 API 서버(310)는 커맨드 채널(340)과 같은 제어 채널을 제공하는데, 여기서 클라이언트(305)는 라이브 접속을 유지할지 모른다. 모바일 네트워크를 살펴보면, 웹소켓은 제어 채널을 위해 이용된다. 다른 예로서, HTTP 킵어라이브(keep-alive) 및 HTTP 롱 풀(long pull) 코멧(Comet)이 이용될지 모른다. 웹소켓이 이용될 수 없는 경우, 클라이언트(305)는 살아있는 공증 또는 라우팅 API 서버(310)와 접속을 유지하기 위해 표준 HTTP 1.0 또는 HTTP 1.1로 다시 떨어진다. 클라이언트(305)는 애플리케이션 모듈 및 도 2의 전자 장치(120)와 같은 모바일 장치상의 로직을 포함한다. 서버(320)는 클라이언트(305)로부터의 요청에 응답하고, 여기에 기술된 대로 정보를 제공하기 위한 모듈을 포함한다.
도 5는 도 3A의 클라이언트(305)와 같은 컨텐츠 재생 클라이언트를 위한 컨텐츠 재생 순서를 나타내는 도면이다.
본 발명의 실시예에 따라, 제어 채널이 실행되어서, 모바일 네트워크에서, 비활성화 구간 후에, 클라이언트(305)가 배터리 생명을 개선하기 위한 라디오 파워를 감소할 수 있게 된다. 클라이언트(305)는 네트워크의 사용이 예를 들어 128 바이트 이하이면, 가령 8 초 내에서 컨텐츠 재생 모듈(129)의 파워 일부를 낮추게 된다. 전용(dedicated) 제어 채널은 HTTP 핸드세이크 및 접속 시간을 제거해서 모바일 네트워크 내의 지연시간을 감소시킨다. 도 4에 나타낸 클라이언트(305)의 커맨트 채널 모듈(410)은 선택적으로 활성화 상태를 유지할지 모른다.
전 이중 통신은 클라이언트(305)의 응답을 개선하기 위해 제공된다. 네트워크 바이트 오버헤드는 제거된다. 가령 HTTP 헤더들은 제거될 수 있다. 제어 채널은 커맨드 파이프라인과 응답 개선을 가능하게 한다. 멀티미디어 데이터는 개별 채널들을 통해 취급된다. 모바일 네트워크에서 클라이언트(305)는 가령 130 바이트의 데이터를 공증 또는 라우팅 API 서버(310)로 주기적으로, 예를 들어 컨텐츠 재생 모듈(129)이 살아있도록 유지하기 위해 7초 마다 두드려야 한다(ping).
제어 채널을 운영하기 위한 클라이언트 로직은 컨텐츠를 패치하는 사용자의 개연성(probablity)에 근거하고 있다. 클라이언트(305)가 가령 방송국, 이미지 등과 같이 채널/컨텐츠를 변경하기 위한 사용자 상호작용을 기대한다면, 제어 채널은 시간의 서두(ahead)에 가능할 수 있다. 제어 채널 핑 패턴이 수행되고, 사용자 상호 작용의 개연성이 특정 임계치보다 낮을 때, 클라이언트가 핑을 멈출 수 있다. 클라이언트(305)는 미디어 재생기 애플리케이션이 클라이언트(305)의 백그라운드에서 동작하면, 제어 채널을 닫는다. 제어 채널은 웹소켓(혹은 HTTP 갱신 프로그램)을 사용해서 실행된다. 모바일 네트워크에서 웹소켓은 대체 HTTP 포트로서 포트 8080상에서 실행될 수 있다. 웹소켓의 협상은 와이파이 상에서, 포트 80을 사용해서, 그 다음 포트 8080을 사용하는 것을 포함한다. 모바일 네트워크상에서, 포트 8080이 이용될 수 있다. 태생적인(generic) HTTP 프로토콜의 디폴트(defaulting)는 웹소켓 접속이 실패하면 클라이언트(305)를 위해 실행된다. 클라이언트(305)는 와이파이/모바일 네트워크를 위해 성공적인 마지막 접속 설정을 기억한다. 도시된 대로, 순서 다이어그램(600)은 웹소켓을 사용하는 클라이언트-서버 상호작용 순서의 예를 보여주고 있다.
도 6은 웹소켓 프락시에 대한 HTTP의 예를 나타내는 도면이다.
하나의 실시예에 따라, 서버 제어 채널 및 API는 웹소켓을 활용한다. 다른 실시예로서, HTTP 프락시들과 방화벽(710)이 웹소켓을 허용하지 않는다면, 클라이언트(305)는 표준 HTTP 요청들로 다시 떨어지고, 웹소켓 프락시에 대한 HTTP는 다이어그램 700으로 다루어진다.
클라이언트(305)의 행위는 로드 밸런서(ELB)(720)가 웹서버세이프가드(wss)를 지원하지 않을 때, 클라이언트(305)가 항상 등록/로그인 목적을 위해 HTTP를 사용한다는 것이다. 성공적인 로그인하에서, 클라이언트(305)는 웹소켓 접속을 개방하고, 서버(730)를 두드리는 것(ping)을 시도한다. 서버(730)로부터의 성공적인 핑 백 하에, 클라이언트(305)는 HTTP를 사용해서 웹소켓을 통해 웹소켓 프락시(740) 및 웹소켓 애플리케이션 서버(750)로 서버 API를 호출한다.
ELB(720)의 행위는 HTTP 요청들 상에서, ELB(720)가 HTTP를 사용해서 프락시로 전달하는 것을 포함한다. 하나의 실시예로서, 요청들 상에서, ELB(720)가 HTTP를 사용해서 프락시에 의해 전달하는 것이다. 또한 웹소켓 요청들 상에서, ELB(720)가 HTTP를 사용해서 애플리케이션 서버(750)로 전달하는 것이다. 프락시 행위는 시작시에, 프락시(740)가 애플리케이션 서버(750)로 웹소켓 접속을 수립하기 위해 시도하게 된다.
웹소켓 접속이 수립된 후, 프락시(740)는 모든 HTTP 요청들의 제공(serving)을 시작한다. 클라이언트(305)로부터의 HTTP 요청을 수신하면, 프락시(740)는 요청들을 파싱하고, 로컬 풀(local pool)에 그것을 보관하며, 웹소켓 접속을 통해 애플리케이션 서버(750)로 다른 요청을 전송한다. 애플리케이션 서버(750)로부터의 응답을 수신하면, 프락시(740)는 초기 HTTP 응답을 패치하고, 응답을 송신한다(pipe the response through).
HTTP 로컬 풀 내의 HTTP 응답들은 어떤 간격 후에 타임 아웃(time out)되고, 자동 삭제된다. 애플리케이션 서버(750)와의 웹소켓 접속이 방해받거나 끊기게 되면, 프락시(740)는 반복적으로 재접속을 시도한다.
도 7은 본 발명의 실시예에 따른 도 2의 전자 장치(120)와 같은 전자 장치의 컨텐츠 재생 과정을 나타내는 도면이다.
블록 810에서, 전자 장치(120)와 같은 도 3A의 클라이언트(305)를 나타내는 전자 장치와 프락시 서버(310)를 통해 자원/컨텐츠원 서버(320) 등의 컨텐츠원 사이에 가령 도 3A의 커맨드 채널과 같은 접속은 유지된다. 블록 820에서, 접속은 전자 장치상에서 하나 혹은 그 이상의 방송국들을 재생하려는 시도에 앞서 프리패치된다.
블록 830에서, 다른 복합적인 방송국을 스캐닝하고 가령 청취자의 시점으로부터 하나의 특정 방송국을 청취하는 것 사이에 구별이 가능하다. 과정 800에서, 유지된 접속은 컨텐츠원과의 개방된 커맨드 채널을 포함하며, 컨텐츠를 프리패칭하는 것은 미리보기 컨텐츠 클립들, 커버 아트 및 다른 복합적인 방송국들을 위한 데크 상의 모든 컨텐츠를 위한 메타데이터를 포함한다. 개방 커맨드 채널은 오픈 웹소켓 커맨드 채널을 포함한다.
과정 800은 더 나아가, 안테나 웨이크업 시간 및 연계된 지연시간을 감소하기 위해 클라이언트로 하트비트 신호를 주기적으로 전송하는 것을 포함한다. 과정 800은 파일 시스템으로부터 미리보기 클립을 클라이언트의 메모리 내 버퍼로 로딩하는 것을 포함하며, 특정 청취 모드 시간 임계치에 도달하기 전까지 미리보기 컨텐츠 클립을 재생하는 것을 포함한다. 재생은 특정 청취 모드 시간 임계치에 도달하기에 앞서 스캔 모드 상태를 유지하고, 특정 청취 모드 시간 임계치에 도달한 후, 과정 800은 버퍼 내의 컨텐츠가 제1 특정 스토리지 크기 임계치보다 작은지 점검한다. 그리고 버퍼 내의 컨텐츠가 제1 특정 스토리지 크기 임계치보다 작으면, 과정 800은 컨텐츠 데이터를 추가로 요청한다.
과정 800은 더 나아가 버퍼 내의 컨텐츠가 제1 특정 스토리지 크기 임계치보다 큰지 판단하고, 버퍼 내의 컨텐츠가 제1 특정 스토리지 크기 임계치보다 크면, 현재 선택된 방송국의 재생을 위해 이용가능한 다음 컨텐츠의 미리보기 컨텐츠 클립을 위한 요청을 발생하는 것을 포함한다. 재생이 특정 지점에 도달하고, 버퍼 내에 남아있는 컨텐츠가 현재 선택된 방송국에서 재생되는 컨텐츠의 제2 특정 스토리지 크기 임계치보다 작으면, 과정 800은 컨텐츠 데이터를 추가로 요청하는 것을 포함한다.
과정 800에서, 컨텐츠는 오디오 데이터, 비디오 데이터 및 오디오/비디오 데이터 중 적어도 하나를 포함할 수 있다. 과정 800에서, 서버로의 요청들은 비동기식 요청들을 포함하고, 서버와의 통신은 전 이중 통신을 포함한다. 커맨드 채널은 개별 전송층을 포함하고, 적어도 서로 다른 2개의 전송계층을 지원한다. 과정 800에서, 유지된 접속은 살아있는 상태가 유지되는 표준 HTTP 접속에 근거할 수 있다.
과정 800은 가령 도 3A의 서버(310), 도 6에서의 프락시 서버(740)와 같은 프락시에 의해 클라이언트(305) 또는 도 2의 전자 장치(120)와 서버(320), 서버(750)와 같은 컨텐츠원 사이에 웹소켓 접속을 통해 그 접속을 수립하는 것을 포함한다. 과정 800은 그 접속이 수립된 후, 프락시에 의해 모든 HTTP 요청들을 제공하는 것을 포함한다. 과정 800은 더 나아가 전자장치로부터 HTTP 요청을 수신할 때, 프락시에 의해 HTTP 요청을 파싱하고, HTTP 로컬 풀에 HTTP 요청을 보존하고, 웹소켓 접속을 통해 컨텐츠원으로 다른 HTTP 요청을 전송하는 것을 포함한다. 과정 800은 또한 컨텐츠원으로부터 응답을 수신할 때, 프락시에 의해 초기 HTTP 응답을 패치하고, 응답을 전송(piping)하는 것을 포함한다. HTTP 로컬 풀 내의 HTTP 요청들은 특정 시간 간격 후에 타임 아웃되고, 역동적 또는 자동으로 삭제된다.
과정 800은 웹소켓 접속이 방해받거나 끊기게 될 때 프락시는 웹소켓 접속을 재수립하기 위해 시도한다.
컨텐츠에 대한 접속을 제공하는 과정은 컨텐츠원과 유지되는 비동기식 통신 링크를 포함한다. 컨텐츠 정보는 통신 링크를 통해 다수의 컨텐츠 단편(혹은 부분)(multiple pieces of content)을 위해 프리패치된다. 컨텐츠 정보는 다수의 컨텐츠 단편들에 관련된 데이터 집합(aggregate)을 포함한다. 취득한 컨텐츠 정보는 전자 장치상의 재생을 위해 패치 메모리 내에서 파싱된다.
컨텐츠에 대한 접속을 제공하는 과정은 사용자의 선택을 위해 프리패치 메모리로부터 그 취득된 컨텐츠 정보를 임시로 나타내는 것을 포함하고, 다수의 컨텐츠 단편들 내에서 적어도 하나의 선택된 종류의 컨텐츠가 재생되는 것을 포함한다. 과정은 나아가 다수의 컨텐츠 단편들에서 각 단편의 컨텐츠를 위한 재생 종료 기간에 근거하여, 다수의 컨텐츠 단편들 중 적어도 하나를 위한 컨텐츠 정보를 주기적으로 프리패칭하는 것을 포함한다. 컨텐츠 정보를 프리패칭하는 것은 컨텐츠를 위한 라디오 방송국 데이터를 프리패칭하는 것을 포함하고, 그것을 전자 장치에 캐싱(caching)하는 것을 포함한다. 컨텐츠 정보를 프리패칭하는 것은 컨텐츠에 대한 초기 접속을 위해 모든 컨텐츠들을 위한 컨텐츠 정보를 프리패칭하는 것을 포함한다. 컨텐츠 정보를 프리패칭하는 것은 컨텐츠에 대한 초기 접속 후에 선택된 일련의 컨텐츠를 위한 방송국 정보를 프리패칭하는 것을 포함한다. 컨텐츠에 대한 접속을 제공하기 위한 과정은 사용자가 재생을 위해 컨텐츠를 선택하는 과정에서 전자 장치상의 컨텐츠를 스킵할 때, 캐쉬된 정보로부터 컨텐츠 메타데이터를 검색(retreving)하는 것을 포함한다.
도 8은 방송국 선택 및 컨텐츠 재생을 위한 UI의 예를 보여주는 도면이다.
본 발명의 실시예는, 예를 들어 도 2의 전자 장치(120)의 터치 스크린 디스플레이에 표시된 본래 원형의 3D 구와 같은 다이얼 UI(851)를 포함하는 컨텐츠 항해 UI 상에서의 범주화된 섹터들(852)을 통해 장르로 라디오 방송국들의 항해를 가능하게 한다. 사용자는 가령 선택된 장르로 다이얼을 맞추고, 디폴트 장르를 선택하는 등 다이얼 UI(851)상의 장르를 선택하고, 그런 후 방송국들을 변경하기 위하여 마치 다이얼 UI가 어떤 방향으로 "스피닝(spinning)" 다이얼인 것과 같이 터치스크린 상에서 방향 "A"(858)로 손가락을 슬라이딩하고, 손가락을 탭핑하는 것과 같이 다이얼한다.
UI(850)는 사용자가 다이얼 UI(851) 상의 디스플레이를 위해 장르, 기호(favorites), 맞춤(custom) 등을 선택하는 선택 영역(853)을 포함한다. 장르 선택은 장르의 디폴트 설정을 사용하고, 디스플레이의 다수의 장르를 선택하기 위해 가령 드롭다운 메뉴 또는 다른 선택가능한 메뉴와 같은 또 다른 메뉴를 제공할 수 있다. 기호 선택은 사용자 나이, 지역(region) 등에 근거한 프로파일 컨텐츠에 근거한 가장 인기있는 장르 중 가장 최근에 선택된 대다수의 방송국 및 선택된 선호 장르를 선택하기 위해 사용자에게 제공할 수 있다. 맞춤 선택은 특정 번호, 장르 유형, 장르 등을 위한 사용 맞춤 방송국들이 있는 UI 다이얼(851)을 맞춤화하도록 사용자에게 제공한다.
UI 다이얼(851)은 최근에 다이얼된 방송국 또는 장르를 위한 인디케이션/인디케이터(854)를 제공한다. 인디케이터(854)는 선택된 방송국 또는 장르를 위해 라인, 화살표, 또는 다른 그래픽 인디케이션일 수 있다. 인디케이터(854)는 방송국 또는 장르와 관련해 UI 다이얼(851)의 현재 위치를 사용자에게 알리기 위해 장르 타이틀을 위한 특정 컬러 또는 하이라이트 컬러, 방송국 또는 장르 뒤의 배경, 확대된 문자, 또는 다른 유형의 그래픽 인디케이션들을 포함한다. UI 다이얼(851) 상에 표시를 위해 선택될 수 있는 장르의 유형 및 번호(number)는 이용가능한 장르/방송국들에 근거해 시간을 넘어 변경될 수 있다. UI 다이얼은 가령 시계방향 또는 반시계 방향 등 적어도 하나의 방향으로 이동 가능하다. 인디케이터(854)는 정적이거나 또는 동적이거나 둘 중 하나이다. 인디케이터(854)는 다양한 장르 또는 방송국 주위에서 회전한다. 다른 예로서, 인디케이터는 고정되고, 장르 또는 방송국들은 UI 다이얼(851)과 함께 회전한다.
UI(850)는 현재 재생하는 방송국/장르/노래에 대한 정보를 포함하기 위해 레전드(855)를 포함한다. 장르/방송국의 번호 및 유형은 앨범 타이틀, 노래의 타이틀 또는 트랙, 재생을 위해 남아있는 시간 등이 표시될 수 있다.
UI(850)는 방송국의 재생을 제어하기 위한 제어 UI(856)를 포함한다. 제어 UI(856)는 정지, 재생, 일시정지(pausing), 빨리감기, 감기, 되감기, 건너뛰기 등을 위한 그래픽 요소를 포함할 수 있다. 제어 UI(856)는 소셜 미디어, 텍스트 메시징, 이메일 등과 같은 다양한 선택들을 통해 다른 것들과 노래, 앨범, 방송국 등을 공유하기 위한 그래픽 요소를 포함할 수 있다.
UI(850)는 방송국, 장르, 앨범, 송, 사용자 선택 사진 또는 그래픽 등으로부터의 사진 및 그래픽들을 포함하는 백그라운드 표시부(857)를 포함한다.
도 9는 방송국 선택 및 컨텐츠 재생을 위한 UI의 다른 예를 보여주는 도면이다.
섹터들(852)은 방송국들을 카테고리들 또는 장르들로 나누고, 다양한 목적들을 제공한다. 섹터들(852)은 사용자가 하나의 장르에서 다른 장르로 건너뛰는 것을 쉽게 하기 위해서, 빠른 글로벌 항해를 제공한다. 섹터들(852)은 사용자가 여전히 방송국에서 방송국으로 변경하는 것을 가능하게 하면서, 방송국 장르 체계(hierarchy)의 고 수준의 뷰를 사용자에게 제공한다. 본 발명의 실시예는 방송국들을 신속하게 변경하고, 단순화하거나 미리보기를 위해 도 10의 다이얼 제어 모듈(1010)의 입력 및 출력 속도를 사용자가 높이거나 낮출 수 있도록 하는 다양한 손가락 제스처 패턴들을 갖는 UI 다이얼(951)을 회전하도록 사용자에게 제공한다. 각 섹터(852)는 장르, 뮤직, 라디오, 비디오 방송국 등의 방송국과 같은 특정 컨텐츠 그룹, 포토 수집 또는 앨범, 포토 유형, 비디오 유형, 이메일 컬렉션과 같은 컨텐츠 컬렉션, 북, 스토리, 시, 뉴스, 기사 등과 같은 텍스트 컬렉션 등과 연계된다.
각 폴더(또는 장르)로 사용자들이 찾아 들어가도록 하는 일반적인 폴더/리스트 체계 항해 대신에, 컨텐츠 항해 UI(900)는 개별 방송국들과 동일한 뷰 내에서 장르 그룹핑들을 표시하는 것을 제공한다. 다이얼 UI(951)를 회전하는 컨텐츠 항해 UI(900)는 신속한 방송국 변경과 브라우징을 허용한다. 장르 섹터들(852)은 다이얼 백워드/포워드로 회전하고, 방송국을 선택해서 특정 장르에 대한 신속한 항해를 허용한다. 본 발명의 실시예에 따라, 컨텐츠 항해 UI(900)는 사용자에게 "방송국 서프(station surf)"에 대한 능력이 주어지면, 방송국들을 위한 신속한 브라우징과 샘플링을 허용한다. 동시에, 컨텐츠 항해 UI(900)는 사용자가 방송국들의 특정 장르(또는 그룹)를 쉽게 찾고 항해하는 것을 허용한다.
다이얼 UI(951)는 선택된 및/또는 표시된 장르의 번호(혹은 개수)에 근거해 팽창하거나 수축할 수 있다. 섹터들(852)은 선 또는 다른 마킹들과 같은 개별 그래픽들에 의해 나타내어진다. 다른 예로서, 섹터들(852)은 시각적인 마킹에 의해 분리되고, 장르, 문자들 또는 장르/방송국 등을 위한 다른 지시들(indicia)에 근거하는 특정 거리에 기반할 수 있다.
최근에 선택된 방송국 또는 장르는 인디케이터(953)의 사용에 의해 특정 컬러, 그림자(shade) 또는 밝기를 갖고 하이라이트될 수 있다. 인디케이터(953) 또는 다른 지시 그래픽들은 사용자가 선택 가능하다. 제어 UI(956)는 도 8의 제어 UI(856)과 비슷한 방송국의 재생을 제어하기 위한 그래픽들을 제공하지만, 제어인디케이터들은 선호하는 노래로서 범주화되거나, 러브송과 같은 노래의 유형에 근거해 범주화된 노래/뮤직을 위한 하트 그래픽 등 뮤직 재생 유형 또는 장르에 근거할 수 있다. 제어 UI(956)의 제어 인디케이터들 또는 아이콘들은 장르, 노래/뮤직의 유형, 아티스트, 선택된 개인 등에 근거해 사용자가 선택할 수 있다.
다이얼 UI(951)는 또한 사용자의 다른 친구들이 동시에 듣고 있는 것을 나타내는 정보를 포함할 수 있다. 친구들, 친척(relative) 등을 위한 인디케이션은 다른 컬러, 그래픽 또는 텍스트 인디케이션 등을 하이라이팅하는 것을 포함할 수 있다. 다른 사용자들을 위한 인디케이션은 동일 노래나 방송국으로 변경하기 위해 현재 사용자에 의해 선택될 수 있다. 인디케이터는 뮤직 또는 노래를 재시작하고, 방송국 또는 장르를 변경하며, 혹은 노래 또는 뮤직의 동일 위치에 있는 노래/뮤직에 접속하기 위하여 사용자에게 제공될 수 있고, 그래서 복수의 사용자들은 동일 노래/음악을 동시에 또는 동시에 가까이서 들을 수 있다.
다이얼 UI(951)는 또한 다른 사용자들이 GPS, 블루투스 등과 같은 제공원으로부터의 정보에 근거하여 10 ft, 25 ft, 50 ft, 25 yard, 100 yard 등 특정 범위 내에서 들을 수 있는 것을 나타낸다.
도 10은 재생 선택을 위한 UI 다이얼이 있는 컨텐츠 재생을 위한 구조를 나타내는 도면이다.
컨텐츠 항해 시스템을 위한 구조(1000)는 도 3A의 클라이언트(305)에서 채택될 수 있다. 클라이언트(305)는 도 2의 전자장치(120)와 같은 클라이언트(305)의 터치스크린 상에 그래픽 UI로서 가령 도 8의 850, 도 9의 900과 같은 컨텐츠 항해 UI를 생성한다.
데이터 로더 모듈(1001)은 클라이언트(305)에 저장된 방송국 데이터를 로드하고, 그 데이터를 다이얼 제어 모듈(1010)로 전달한다. 방송국 데이터는 방송국의 현재 노래를 위한 방송국 메타데이터, 뮤직 앨범 커버 아트 정보 및 오디오 트랙 정보를 포함한다. GUI 및 레이아웃 렌더러 모듈(1020)은 다이얼 제어기(또는 부)(1010)의 출력에 의해 구체화된 대로, 도 8-9의 GUI를 제공한다.
장치 터치 스크린(1030)은 사용자로부터의 입력을 수신하고, 이벤트를 클릭하고 이벤트를 이동시키기 위해 터치, 스윕(sweep) 등과 같은 사용자 동작을 해석한다. 다이얼 제어기(1010)는 장치 터치 스크린(1030)으로부터 사용자 이벤트들을 수신하며, 사용자 의도를 판단한다. 여기서, 사용자 의도는 특정 장르로 신속하게 건너뛰기 위한 탭 또는 방송국에서 방송국으로 신속하게 변경하기 위해 다이얼 회전을 위한 스윕을 포함한다. 다이얼 제어기(1010)는 사용자 요청들에 응답하고, 클라이언트(305)에 표시되어 재생된 것을 갱신한다. 다이얼 제어기(1010)는 새로운 방송국을 판단/계산하기 위해 사용자 입력을 취급하고, GUI 및 레이아웃 렌더러 모듈(1020)로 UI 정보를 전달하는지를 판단한다. 다이얼 제어기(1010)는 클라이언트(305) 상의 방송국 컨텐츠를 재생하기 위해 도 4의 뮤직 플랫폼 미디어 엔진(430)을 구동한다.
입력 제어 관리자 모듈(1050)은 속도 및 민감도 프리퍼런스들(preferences)을 다이얼 제어 모듈(1010)로 되먹임하는 것을 실행한다. 기정의된 세그먼트 프리퍼런스들(1060)은 컨텐츠 재생 애플리케이션 또는 방송국 재생기 애플리케이션의 초기 런칭시에 로드된다. 입력 세그먼트 프리퍼런스들은 컨텍추얼 프리프 관리자 모듈(1070)에 의해 많은 용례의 통계수치(statistics)들이 수집될 때, 컨텍추얼 프리프 관리자 모듈(1070)에 의해 정밀 조정된다.
컨텐츠 항해 시스템(1000)은 도 8-9의 다중 섹터들(852)로 분할된 항해 휠/다이얼러를 포함하고, 장르 또는 방송국이 다이얼 내에 위치하는 사용자 정보를 제공하는 GUI를 표시한다. 사용자가 예를 들어, 다이얼 상의 2시 정각의 섹터를 선택하거나, 10시 정각의 섹터를 선택하면, 사용자는 장르들이 다이얼 상에서 항상 동일 위치에 있기 때문에 장르가 적합한 것으로 알게 된다. 맞춤(customization)은 시스템에 의해 제공될 수 있는데, 시스템은 사용자가 다이얼 상에서 장르가 보여지고, 사용자가 또는 다이얼 상에서 표시되는 장르의 최대 또는 최소 번호를 선택하는 곳에 특정된다. 나아가, UI 다이얼의 맞춤은 명칭, 위치(position), UI 다이얼상의 위치(location) 등을 포함한다.
항해 다이얼은 원(circle)을 포함하고, 원은 백엔드(back end)에서 프리패치되는 많은 장르의 방송국들로 분할될 수 있다. 다이얼의 하나의 레볼루션(revolution)은 지지되는 장르들의 총 수를 나타내는 것이다.
장르 방송국들의 설정 수는 다이얼의 각 레볼루션을 위해 제공된다. 만약 사용자가 30번째 방송국으로 항해하기를 바라고, 각 레볼루션이 10개의 방송국을 나타낸다면, 사용자는 도 8에서 화살표 A와 같이 터치 스크린상의 횔에서 손가락을 회전해서 스윕핑해서 다이얼을 3번 회전할 필요가 있는데, 여기서 3번은 3개의 풀 레볼루션을 나타낸다. 스윕핑 동작은 원형의 물리적 라디오 노브(knob)를 그랩핑/홀딩하는 것과 그것을 터닝/스피닝하는 것과 유사하다. 다이얼은 라디오가 가령 채널 88에서 110 MHz로 다이얼하게 되는 카 라디오 튜닝 노브를 제거할 수 있다. 103 MHz가 듣기 편한 방송국이라면, 사용자가 다이얼이 103 MHz를 나타내기 전까지 튜닝 노브를 조정할 필요가 있다. 본 발명의 실시예는 휠/다이얼 상에서의 기설정이 가능하다. 한가지 예로서, 사용자가 만약 장르 명칭 상에서 탭하면, 재생은 그 장르의 첫 방송국으로 건너뛰게 될 것이다.
본 발명의 실시예들은 오디오 북과 같은 다른 오디오 포맷들에 유용하다. 다른 예로서, 다이얼은 채널들을 변경하거나, 컨텐츠 항해를 위해 사용될 수 있다. 다이얼은 사진 및 비디오와 같은 다른 미디어를 항해하기 위해 적용될 수 있다. 본 발명의 실시예들은 온라인 라디오 방송국들에 제한되지 않으며, 사진, 비디오, 텍스트, 이메일 등의 항해에 유용한다.
도 11은 재생 선택을 위한 UI 다이얼이 있는 컨텐츠 재생의 흐름을 나타내는 흐름도이다.
흐름 다이어그램(1100)은 섹터들과 다이얼의 동작 로직을 포함한다. 블록 1103에서, 도 10의 데이터 로더 모듈(1001)은 항해 애플리케이션이 도 3A의 클라이언트(305) 상에서 전에 실행되었는지 점검한다. 만약 항해 애플리케이션이 처음으로 시작되는 것으로 판단되면, 블록 S1104에서, 입력 제어 관리자 모듈(1050)은 제스처 입력 제어 세그먼트 프리퍼런스들을 다룬다.
블록 S1100에서, 데이터 로더 모듈(1001)은 클라이언트(305)의 영속적인 스토리지로부터 방송국 데이터를 로드하고, 다이얼 제어 모듈(1010)은 다이얼 섹터들, 장르 위치들, 방송국 위치들을 계산/판단하며, 입력 제어 관리자 모듈(1050)은 다이얼러 속도 및 연계된 프리퍼런스 설정들을 계산/판단한다. S1110에서, GUI 및 레이아웃 렌더러 모듈(1020)은 그 데이터를 사용하고, 장치 터치스크린 화면(1030)상의 GUI 항목들을 제공한다(renders).
과정 1100의 나머지(remainder)는 다중 섹션들로 쪼개질 수 있다. (1) 클라이언트(305)의 터치 스크린상에서 다이얼과 사용자의 상호작용에 근거해 사용자의 의도를 판단할 수 있다. (2) 사용자 요청들에 응답하고 클라이언트(305)의 표시 및 오디오를 갱신할 수 있다. (3) 원(raw) 데이터 포맷으로 제스처 용례 통계들을 기록할 수 있다. 블록 S1120 및 S1150은 특정 장르로 신속하게 건너뛰거나 인접 방송국을 신속하게 단순화/미리보기를 하여 사용자 의도를 판단하는 것을 실행한다. 블록들 S1130, S1140, S1160 및 S1170은 디스플레이를 갱신하는 것, 원 데이터 포맷으로 입력 제어 세그먼트 관련 프리퍼런스들을 기록하는 것, 정확한 노래를 재생하는 것과 같이 의도된 방송국으로 변경하는 것을 실행한다.
블록 S1120에서, 다이얼 제어 모듈(1010)은 장치 터치 스크린(1030)으로부터 의 사용자 입력이 장르 UI 요소 또는 섹터를 탭핑했던 사용자를 나타내는지 점검한다. 만약 사용자가 장르 UI 요소 및 섹터를 탭핑하였다면, 블록 S1130에서 다이얼 제어기(1010)는 현재 방송국을 선택된 장르의 제1 방송국으로 변경한다. 이 지점에서, 과정 1100은 계속해서 방송국 처리 또는 기능을 변경한다. 블록 S1150에서, 다이얼 제어기 모듈(1010)은 장치 터치 스크린(1030)으로부터의 사용자 입력이 사용자가 다이얼 UI를 회전하는 것을 나타내는지 점검한다. 만약 회전 이벤트가 검출되면, 블록 S1160에서 다이얼 제어 모듈(1010)은 시계 방향 또는 반시계 방향과 같이 회전 이벤트의 방향에 따라 다음 또는 이전 방송국으로 변경한다. 방송국 변경 과정에서, 블록 S1140의 다이얼 제어 모듈(1010)은 현재 방송국의 현재 노래의 커버 아트로 스크린 배경을 변경하기 위해 GUI 및 레이아웃 렌더러 모듈(1020)에 지시한다(directs). 블록 S1170에서, 다이얼 제어 모듈(1010)은 현재 방송국의 현재 노래에 대한 재생을 시작하기 위하여 뮤직 플랫폼 및 미디어 엔진 모듈(430)에 지시한다.
본 발명의 실시예들은 도 2의 전자 장치(120)와 같은 전자 장치 또는 항해 다이얼을 활용하는 도 3A의 클라이언트(305)와 같은 클라이언트 장치에서 가속화 오디오 재생 시작(start-up) 및 관련 메타데이터의 표시를 제공하는데, 그 결과 사용자가 도 8의 851 및 도 9의 951과 같은 다이얼 UI를 사용해서 라디오 방송국과 같은 컨텐츠원을 변경할 때, 전자 장치 또는 클라이언트는 감소된 버퍼링 시간없이, 즉 버퍼링으로부터의 지연 없이 재생을 시작한다. 본 발명의 실시예들은 사용자가 다른 방송국들을 통해 다이얼을 회전하는 것과 같이 다수의 컨텐츠원들을 통해 신속하게 변경할 수 있도록 UI의 지원을 제공한다. 전자 장치나 클라이언트의 터치 화면에 표시된 UI는 사용자가 다수의 서브 세컨드(sub-second) 방송국 사운드 클립, 가령 미리보기들을 신속하게 회전하고, 듣게 되는 그래픽 라디오 다이얼을 포함한다.
도 12는 UI 다이얼과 상호 작용하기 위한 손가락 움직임을 나타내는 도면이다.
본 발명의 실시예에 따라, 항해 제어 방법들에 근거한 손가락 제스처는 다수의 방법으로 실행될 수 있다. 손가락 제스처(1205) 기반 항해는 도시된 대로 연속적인 단일 손가락 제스처를 통해 입력 제어인 가령 화살표(1206)를 따라 "출발(Start)" 및 "끝(Finish)"으로 구성된다. 입력 제어의 "Start" 및 "Finish"는 "스크린 터치" 또는 "손가락 이동 멈춤"에 의해 검출된다.
입력 제어의 민감도 또는 속도를 제어하기 위한 기정의된 또는 역동적으로 생성된 패턴 기반 입력 제어 세그먼트들(1210)을 통한 하나의 연속적인 손가락 제스처 이동은 다이얼 UI를 위해 실행된다. 다이얼 UI는 입력 제어 세그먼트들을 제어하는 기정의된 패턴을 사용한다. 예로서, 사용자 손가락 이동(1205) 제스처는 다이얼 또는 원(circle)의 레볼루션 당 다수의 방송국 변경을 제어한다. 입력 제어 세그먼트들 사이의 거리는 제스처 세그먼트(1210) 전체적으로 동등한데, 제스처 세그먼트(1210)는 다양한 다른 세그먼트 크기들로 또한 구성될 수 있다. 레볼루션 당 방송국 변경의 개수는 조정될 수 있다. 가령, 장르 또는 방송국들의 수에 근거해 사용자가 선택가능할 수 있다.
도 13은 손가락 움직임에 의한 상호 작용과 제1 세그먼트 유형을 위한 UI 다이얼 결과를 예시하여 나타낸 도면이다.
본 발명의 실시예에 따라, 세그먼트 유형 1에서, 손가락 제스처 세그먼트는 예를 들어, 주행거리(distance traveled) 동안 7개의 방송국 변경을 나타낸다. 사용자는 UI 인디케이터가 도 3A의 클라이언트(305)와 같은 그들의 장치의 화면에서 7개의 방송국들이 통과하게 된다. 사용자 손가락 제스처는 1301에서 출발하여 1302에서 끝난다. 액션 요청하는 제어부(1305)는 세그먼트 유형 1을 위해 동등한 거리 세그먼트(1303)를 포함한다.
도 14는 손가락 움직임에 의한 상호 작용과 제2 세그먼트 유형을 위한 UI 다이얼 결과를 예시하여 나타낸 도면이다.
본 발명의 실시예에 따라, 방송국 변경을 위한 역동적인 레이아웃이 제공되는데, 그것은 속도 또는 비율(rate)에 관계없이 손가락 제스처 세그먼트의 연속적인 이동 및 거리에 근거하여 변경된 방송국들의 개수를 증가시킨다. 이동이 출발 1401에서 시작될 때, 손가락 제스처 세그먼트의 더 긴 거리가 방송국들을 변경하기 위해 필요하다. 이동이 계속되고, 이동된 거리가 더 길어지면, 속도에 독립적인 가속 효과가 끝 1402로 제공되면 더 적은 이동이 방송국들을 변경하는 데 필요하다. 이동이 멈추자마자 또는 화면에서 접촉이 없어질 때, 역동적인 레이아웃이 재시작된다. 세그먼트 유형 2는 손가락 제스처에 근거한 정교하고 거친(coarse) 방송국 조작을 허용한다. 역동적인 레이아웃은 가령 세그먼트 1404와 같이 방송국 변경들 사이의 거리가 더 커져서 출발하고, 세그먼트 1403과 같이 손가락 제스처 세그먼트의 연속적인 이동 및 거리에 근거해 크기를 줄이는 것으로 실행된다.
세그먼트 유형 2에서, 손가락 제스처 세그먼트의 전체 길이는 예를 들어 3 인치가 될 수 있다. 이동의 첫째 1 인치는 2개의 방송국만을 변경할 수 있고, 이동이 계속될 때 이동의 두 번째 1 인치는 5개 이상의 방송국 변경을 초래할 수 있다. 이동의 세 번째 1인치는 10개 이상의 방송국 변경을 초래할 수 있다. 본 발명의 실시예에 따라, 손가락 제스처는 미세한 것에서부터 거친 조작으로 변경하는 것을 제공한다. UI 다이얼 인디케이터는 예를 들어 17개의 방송국들을 통과시키는 것을 제공할 수 있다. 사용자 손가락 제스처는 1401에서 출발하고, 1402에서 끝난다. 본 발명의 실시예에 따라 액션을 요청하는 제어부(1405)는 세그먼트 유형 2를 위해 동등하지 않는 거리 세그먼트(1404-1403)를 포함한다.
도 15는 UI 다이얼을 위한 표시 마커 이동을 예시하여 나타낸 도면이다.
본 발명의 실시예에 따라, 기정의된 패턴을 사용하는 다른 예들을 살펴보면, 패턴들은 각 사용자의 용례 패턴에 근거하여 시스템에 의해 역동적으로 생성될 수 있다. 가령 시스템은 입력 제어 세그먼트들을 역동적으로 구축함으로써 UI 다이얼의 민감도를 자동 조정할 수 있을 것이다. 세그먼트 유형 1(1503) 및 세그먼트 유형 2(1504)는 결합될 수 있는데, 여기서 다른 점선(1502)은 UI 다이얼을 회전하는 손가락 제스처에 의한 주행거리를 나타낸다. 본 발명의 실시예들에서, UI 다이얼의 다중 섹터들은 다른 것과 고정된 거리에서 떨어져 있고, 터치 스크린에서 특정 손가락 제스처에 근거해 공간상의 떨어진 거리는 변경될 수 있다. 가령, 손가락 제스처의 길이, 손가락 제스처의 속도 등에 의해 변경될 수 있는 것이다.
도 16은 UI 다이얼을 예시하여 나타낸 도면이다.
UI 다이얼(1602)은 UI 다이얼(1602) 주변에 다양한 장르/방송국 선택들을 갖는 원형 다이얼을 포함하는데, 여기서 사용자는 그들의 손가락으로 방송국 선택을 위해 다이얼을 회전/스핀하는 제스처를 취할 수 있다. UI 다이얼(1602)은 방송국 또는 장르 선택 인디케이터(1601)를 포함하거나, 방송국 선택을 위해 라디오 다이얼로서 다른 장르 또는 방송국들 주위에서 회전하는 기준점(referece point)을 포함한다.
본 발명의 실시예에 따라, 방송국 선택을 위한 항해는 손가락 제스처가 인식하는 것에 근거하여 변경하는 복합적인 메커니즘(maechanic)일 수 있다. 예를 들어, 원형 다이얼 내의 손가락 제스처는 도 13 내지 15에 기술된 대로, 항해 메커니즘를 초래할 수 있으며, 원형 다이얼 바깥의 손가락 제스처는 손가락 제스처를 직접 추적하는 또는 손가락 제스처가 인식되는 방향에서 가리키는 지점을 추적하는 방송국 또는 장르 선택 인디케이터(1601)를 초래할 수 있다. 선택 사항으로서, 항해 메커니즘 변경은 인디케이터 링 내에, 방송국 또는 장르 링 내에 있거나, 사용자에게 투명한 기설정된 영역이 될 수 있다.
도 17 내지 도 19는 방송국 관리 및 맞춤형(customization) 선택이 있는 UI를 예시하여 나타낸 도면이다.
본 발명의 실시예에 따라, 도 17은 현재 재생하는 방송국에 근거해 선호하는 노래들을 선택하고, 적어도 하나의 방송국들로부터 노래를 금지하고, 새로운 방송국을 추가하며, 새롭게 재생되는 노래에 근거해 방송국을 생성(creating)하며, 장르, 뮤직/노래들의 유형, 아티스트, 밴드에 대한 정보 등과 같이 방송국의 상세 내용을 볼 수 있는 것과 같이 다양한 방송국 기능을 위해 UI(1710)에 제공되는 방송국들의 관리를 포함하는 스크린 샷(1700)의 일례를 보여준다.
도 18은 본 발명의 실시예에 따른 스크린 샷(1800)의 일례를 보여준다. 본 발명의 실시예에 따라, UI(1810)는 다음을 위한 사용자 선택들을 포함한다. 예를 들어, UI(1810)는 방송국 생성, 나의 방송국들을 관리, 도 16의 UI 다이얼(1602)을 맞춤화하는 것, 선호하는 노래들을 선택하는 것, 가령 표시된 노래들, 표시된 방송국들, 표시된 컨텐츠와 같이 히스토리를 보여주는 것, 설정값(settings)들을 보여주거나 변경하는 것, 도움을 위한 토픽들을 검색(lookup)하는 것 등의 사용자 선택을 포함할 수 있다.
도 19는 본 발명의 실시예에 따른 스크린 샷(1900)의 일례를 보여준다. UI(1910)는 방송국들, 아티스트들, 대중성(popularity), 개별 선호 등의 미세 조정을 제공한다. 가령 방송국들은 노래들의 유형, 발표일(release date), 빠르고 느린 것과 같은 노래의 페이스(pace)에 근거할 수 있고, 아티스트들은 특정 아티스트에 근거한 많고 적은 뮤직/노래들을 포함하며, 대중성은 소셜 미디어, 재생 수에 근거한 추세를 나타낸다.
본 발명의 실시예에 따라, 맞춤 및 관리를 위한 도 17 내지 19의 UI들은 노래, 뮤직, 장르, 재생, 설정 등의 선택 및 제어를 위해 드롭다운 메뉴, 슬라이드 바, 라인 아이템 선택들, 다이얼 인터페이스 등을 포함할 수 있다. 설정과 관리는 다른 장치들과 공유하거나 다른 장치로부터 선택될 수 있다. 예를 들어, 사용자들이 친구로부터 설정값들을 선택할 수 있거나, 바라는 대로 공개된 설정값들 또는 선택사항들을 선택할 수 있다. 입력된 설정값들 또는 선택사항들은 블루투스나 다른 수단들을 통해 다운로드하고 수신할 수 있으며, 메시지나 이메일 등을 통해 전송할 수 있다.
도 20은 본 발명의 실시예들을 실행하는 컴퓨팅 시스템(500)을 포함하는 정보 처리 시스템을 보여주는 고 수준의 블록 다이어그램이다.
본 발명의 실시예에 따라, 시스템(500)은 ASIC, CPU 등과 같은 적어도 하나의 프로세서들(511)을 포함하며, 그래픽, 텍스트 및 다른 데이터를 표시하기 위해 전자 표시장치(512), RAM, 캐쉬 장치 등의 메인 메모리(513), 하드디스크 장치 등의 저장장치(513), 제거가능한 저장 드라이브, 제거가능한 메모리 모듈, 자기형 드라이브, 광디스크 드라이브, 컴퓨터 소프트웨어 및/또는 데이터가 저장된 컴퓨터 판독가능 기록매체와 같은 제거가능 저장장치(515), 키보드, 터치 스크린, 키패드, 포인팅 장치와 같은 사용자 인터페이스 장치(516), 및 모뎀, 와이파이 및 셀룰러와 같은 무선 전송기 등의 통신 인터페이스(517), 이더넷 카드와 같은 네트워크 인터페이스, PCMCIA 슬롯 및 카드와 같은 통신 포트를 더 포함할 수 있다.
통신 인터페이스(517)는 소프트웨어 및 데이터가 컴퓨터 시스템 및 외부 장치들로 인터넷(550), 모바일 전자장치(551), 서버(552), 네트워크(553) 등을 통해 전송될 수 있도록 한다. 시스템(500)은 나아가 통신 버스, 크로스바, 또는 네트워크와 같은 통신 인프라스트럭쳐(518)를 포함하며, 이후에 언급되는 장치들/모듈들(511-517)은 통신 인프라스트럭쳐(518)에 연결된다.
통신 인터페이스(517)를 통해 전송된 정보는 전자, 전자기, 광학과 같은 신호들 또는 신호들을 전송하는 통신 링크를 경유하여 통신 인터페이스(517)에 의해, 수신 가능한 다른 신호들의 형태로 존재할 수 있으며, 유선 또는 케이블, 광섬유, 전화선, 셀룰러 폰 링크, 라디오 주파수(RF) 링크, 및/또는 다른 통신 채널들을 사용해서 실행될 수 있다.
모바일 폰, 태블릿, 착용가능한 장치 등의 모바일 무선장치에서 본 발명의 실시예들의 실행시에, 시스템(500)은 나아가 도 2의 카메라 모듈(128)과 같은 이미지 캡쳐 장치, 그리고 도 2의 마이크로폰(122)과 같은 오디오 캡쳐 장치(519)를 포함할 수 있다. 시스템(500)은 나아가 MMS 모듈(521), SMS 모듈(522), 이메일 모듈(523), 소셜 네트워크 인터페이스(SNI) 모듈(524), 오디오/비디오(AV) 재생기(525), 웹 브라우저(526), 이미지 캡쳐 모듈(527) 등으로서 애플리케이션 모듈을 포함할 수 있다.
본 발명의 실시예에 따라, 시스템(500)은 도 3A의 클라이언트(305)와 관련해 기술된 것과 유사한 처리를 실행할 수 있는 컨텐츠 재생 처리 모듈(530)을 포함할 수 있고, 블록 다이어그램 400에서 클라이언트(305)의 구성요소들을 포함할 수 있다. 본 발명의 실시예에 따라, 컨텐츠 재생 처리 모듈(530)은 도 7의 흐름도 800의 처리를 수행한다. 동작 시스템(529)과 더불어 컨텐츠 재생 처리 모듈(530)은 시스템(500)의 메모리에 잔류하는 실행가능한 코드로서 실행될 수 있을 것이다. 다른 예로서, 컨텐츠 재생 처리 모듈(530)은 하드웨어, 펌웨어 등에서 제공될 수 있다.
한편, 본 발명의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 비일시적 저장매체(non-transitory computer readable media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시 예를 구현할 수 있다.
여기서 비일시적 판독 가능 기록매체란, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라, 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로, 상술한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리 카드, ROM 등과 같은 비일시적 판독가능 기록매체에 저장되어 제공될 수 있다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
11: 수신장치 12: 송신장치
110: 통신망 121: 디스플레이부
122: 마이크로폰 123: 오디오 출력부
124: 입력 메커니즘(부) 125: 통신부
126: 제어부 127: 애플리케이션 1-N
128: 카메라 129: 컨텐츠 재생(부)
130: 클라우드/서버

Claims (37)

  1. 전자장치의 컨텐츠 재생 방법에 있어서,
    상기 전자장치가, 컨텐츠를 제공하는 컨텐츠원에 접속하는 단계;
    상기 전자장치에서, 적어도 하나의 방송국을 재생하기 위한 시도에 앞서, 컨텐츠를 프리패치(prefetch)하는 단계;
    복수의 방송국을 스캐닝하는 것과 하나의 특정 방송국을 청취하는 것을 구별하는 단계; 및
    임의의 모드 시간 임계치에 도달하기 전까지 미리보기 컨텐츠 클립을 재생하는 단계;를 포함하는 컨텐츠 재생 방법
  2. 제1항에 있어서,
    상기 컨텐츠원에 접속하는 단계는,
    상기 전자장치가 상기 컨텐츠를 위해, 개방된 상태를 유지하는 오픈 커맨드 채널을 통해 상기 컨텐츠원에 접속하며,
    상기 컨텐츠를 프리패치하는 단계는,
    상기 복수의 방송국의 데크 상에 있는 모든 컨텐츠에 대한 미리보기 컨텐츠 클립, 커버 아트(cover art) 및 메타 데이터를 프리패치하는 것을 특징으로 하는 컨텐츠 재생 방법.
  3. 제2항에 있어서,
    상기 오픈 커맨드 채널은 오픈 웹소켓(Open WebSocket) 커맨드 채널을 포함하며, 상기 컨텐츠원은 서버를 포함하는 것을 특징으로 하는 컨텐츠 재생 방법.
  4. 제2항에 있어서,
    상기 오픈 커맨드 채널은 서로 다른 복수의 전송 방식을 지원하는 분리된 전송층을 포함하는 것을 특징으로 하는 컨텐츠 재생 방법.
  5. 제1항에 있어서,
    안테나의 웨이크업 및 웹 접속 시간에 관련된 지연시간(latency)을 감소시키기 위해 상기 전자장치로 하트비트(heartbeat) 신호를 주기적으로 전송하는 단계;
    상기 컨텐츠의 파일 시스템으로부터의 미리보기 컨텐츠 클립을 상기 전자장치 내의 메모리에 로딩하는 단계; 및
    임의의 청취 모드 시간 임계치에 도달하기 전까지 상기 미리보기 컨텐츠 클립을 재생하는 단계;를
    더 포함하는 컨텐츠 재생 방법.
  6. 제5항에 있어서,
    상기 컨텐츠의 재생은 상기 임의의 청취 모드 시간 임계치에 도달하기에 앞서 스캐닝 모드 상태를 유지하고,
    상기 임의의 청취 모드 시간 임계치에 도달한 후, 상기 메모리 내의 컨텐츠가 제1 특정 스토리지 크기 임계치보다 작은지 점검하고,
    상기 메모리 내의 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 작으면, 컨텐츠 데이터를 추가로 요청하는 것을 특징으로 하는 컨텐츠 재생 방법.
  7. 제6항에 있어서,
    상기 메모리 내의 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 큰지 판단하고, 상기 메모리 내의 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 크면, 현재 선택된 방송국의 재생을 위해 이용 가능한 다음 컨텐츠의 미리보기 컨텐츠 클립을 요청하는 단계;를 더 포함하는 것을 특징으로 하는 컨텐츠 재생 방법.
  8. 제7항에 있어서,
    임의의 지점에 도달하고, 상기 메모리 내에 컨텐츠를 유지하는 재생이 상기 현재 선택된 방송국에서 재생되는 컨텐츠를 위한 제2 특정 스토리지 크기 임계치보다 작을 때, 컨텐츠 데이터를 추가로 요청하는 것을 특징으로 하는 컨텐츠 재생 방법.
  9. 제1항에 있어서,
    상기 컨텐츠는 오디오 및 비디오 데이터 중 적어도 하나를 포함하며,
    상기 컨텐츠의 제공에 관련된 상기 컨텐츠원으로의 요청은 비동기식(asynchronous)으로 이루어지는 것을 특징으로 하는 컨텐츠 재생 방법.
  10. 제1항에 있어서,
    상기 접속 및 상기 접속의 유지는, 표준 HTTP에 근거하여 이루어지는 것을 특징으로 하는 컨텐츠 재생 방법.
  11. 제1항에 있어서,
    상기 전자장치와 상기 컨텐츠원 사이에 연결되는 프락시(proxy)를 포함하며,
    상기 프락시가, 상기 전자장치와 상기 컨텐츠원 사이에서 웹소켓을 통해 접속하는 단계;
    상기 웹소켓을 통한 접속이 완료된 후, 상기 프락시가 모든 HTTP 요청들을 상기 전자장치로부터 수신하는 단계;
    상기 프락시가, 상기 전자 장치로부터 수신된 HTTP 요청을 파싱하고, HTTP 로컬 풀에 상기 HTTP 요청들의 일부를 저장하며, 저장되지 않는 다른 HTTP 요청들을 상기 웹소켓을 통해 상기 컨텐츠원으로 전송하는 단계; 및
    상기 프락시가, 상기 컨텐츠원으로부터 수신된 초기 HTTP 응답을 패치하고, 상기 컨텐츠원으로부터 수신된 응답을 파이핑(piping)하는 단계;를 더 포함하되,
    상기 HTTP 로컬 풀 내의 HTTP 요청은 임의의 시간 간격 후에 타임 아웃되고, 삭제되는 것을 특징으로 하는 컨텐츠 재생 방법.
  12. 제11항에 있어서,
    상기 웹소켓을 통한 접속이 방해받거나 끊길 때, 상기 프락시는 상기 웹소켓을 통해 접속을 재시도하는 것을 특징으로 하는 컨텐츠 재생 방법.
  13. 컨텐츠 재생을 위한 클라이언트에 있어서,
    컨텐츠를 제공하는 컨텐츠원으로 인터페이스를 제공하고, 상기 클라이언트와 상기 컨텐츠원에 접속하는 커맨드 채널 모듈;
    상기 클라이언트가, 적어도 하나의 방송국을 재생하기 위한 시도에 앞서, 컨텐츠를 프리패치(prefetch)하는 프리패치 관리자 모듈;
    복수의 방송국을 스캐닝하는 것과 하나의 특정 방송국을 청취하는 것을 구별하고, 임의의 모드 시간 임계치에 도달하기 전까지 미리보기 컨텐츠 클립을 재생하는 라디오 서비스 모듈;을
    포함하는 컨텐츠 재생을 위한 클라이언트.
  14. 제13항에 있어서,
    상기 커맨드 채널 모듈은 상기 컨텐츠를 위해, 개방된 상태를 유지하는 오픈 커맨드 채널을 통해 상기 컨텐츠원에 접속하고,
    상기 프리패치된 컨텐츠는, 상기 복수의 방송국의 컨텐츠를 재생하기 위한 미리보기 컨텐츠 클립들, 커버 아트 및 메타 데이터를 포함하며,
    상기 오픈 커맨드 채널은 오픈 웹소켓 커맨드 채널을 포함하는 것을 특징으로 하는 컨텐츠 재생을 위한 클라이언트.
  15. 제14항에 있어서,
    상기 커맨드 채널 모듈은 클라이언트 안테나 웨이크업 및 상기 웨이크업에 연계된 지연 시간을 감소하기 위해 상기 클라이언트로 하트비트(heartbeat) 신호를 주기적으로 전송하고,
    상기 프리패치 관리자 모듈은 파일 시스템으로부터의 미리보기 컨텐츠 클립을 상기 클라이언트에 의해 사용된 메모리 내에 로드하며,
    상기 라디오 서비스 모듈은 상기 컨텐츠를 청취하는 임의의 청취 모드 시간 임계치에 도달하는지 판단하기 전까지 상기 미리보기 컨텐츠 클립을 재생하는 것을 특징으로 하는 컨텐츠 재생을 위한 클라이언트.
  16. 제15항에 있어서,
    상기 라디오 서비스 모듈은 상기 임의의 청취 모드 시간 임계치에 도달하기에 앞서 스캔 모드에서 재생을 유지하고,
    상기 임의의 청취 모드 시간 임계치에 도달한 후, 상기 프리패치 관리자가 상기 메모리 내의 컨텐츠가 제1 특정 스토리지 크기 임계치보다 작은지 점검하며,
    상기 메모리 내의 상기 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 작으면, 상기 프리패치 관리자 모듈은 컨텐츠 데이터를 추가로 요청하는 것을 특징으로 하는 컨텐츠 재생을 위한 클라이언트.
  17. 제16항에 있어서,
    상기 프리패치 관리자 모듈은 상기 메모리 내의 상기 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 큰지 점검하고,
    상기 메모리 내의 상기 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 크면, 상기 프리패치 관리자 모듈은 현재 선택된 방송국의 상기 라디오 서비스 모듈에 의해 재생의 이용이 가능한 다음 컨텐츠의 미리보기 컨텐츠 클립을 요청하는 것을 특징으로 하는 컨텐츠 재생을 위한 클라이언트.
  18. 제17항에 있어서,
    상기 재생이 임의의 지점에 도달하고, 상기 메모리 내의 잔여 컨텐츠가 현재 선택된 방송국에서 재생되는 컨텐츠를 위해 제2 특정 스토리지 크기 임계치보다 작을 때, 상기 프리패치 관리자 모듈은 컨텐츠 데이터를 추가로 요청하는 것을 특징으로 하는 컨텐츠 재생을 위한 클라이언트.
  19. 제13항에 있어서,
    상기 컨텐츠는 오디오 데이터, 비디오 데이터 또는 오디오/비디오 데이터를 포함하고,
    상기 클라이언트는 컨텐츠의 재생을 위한 방송국의 선택을 위해 상기 클라이언트에서 이동가능한 사용자 인터페이스 다이얼 상의 적어도 하나의 방송국을 표시하는 것을 특징으로 하는 컨텐츠 재생을 위한 클라이언트.
  20. 제16항에 있어서,
    상기 컨텐츠원으로의 요청들은 비동기식 요청들을 포함하고,
    상기 커맨드 채널은 개별 전송층을 포함하고, 적어도 2개의 다른 전송계층을 지원하며,
    상기 접속 및 상기 접속의 유지는, 표준 HTTP에 근거하여 이루어지는 것을 특징으로 하는 컨텐츠 재생을 위한 클라이언트.
  21. 제13항에 있어서,
    상기 커맨드 채널 모듈은,
    상기 클라이언트와 상기 컨텐츠원 사이에 웹 소켓을 통해 접속하는 프락시(proxy)를 사용하고,
    상기 접속이 완료된 후, 상기 프락시로부터 모든 HTTP 요청들을 수신하며,
    상기 프락시가, 수신된 HTTP 요청을 파싱하고, HTTP 로컬 풀에 상기 HTTP 요청을 저장하며, 저장되지 않는 다른 HTTP 요청을 상기 웹소켓 접속을 통해 상기 컨텐츠원으로 전송하고,
    상기 프락시가, 상기 컨텐츠원으로부터 초기 HTTP 응답을 패치하고, 상기 컨텐츠원으로부터 수신된 응답을 파이핑(piping)하며,
    상기 HTTP 로컬 풀 내의 HTTP 요청은 임의의 시간 간격 후에 타임 아웃되고, 삭제되는 것을 특징으로 컨텐츠 재생을 위한 클라이언트.
  22. 컨텐츠 재생 방법을 실행하는 컴퓨터 판독가능 기록매체에 있어서,
    상기 컨텐츠 재생 방법은,
    컨텐츠를 제공하는 컨텐츠원에 접속하는 단계;
    전자장치에서, 적어도 하나의 방송국을 재생하기 위한 시도에 앞서, 컨텐츠를 프리패치(prefetch)하는 단계;
    복수의 방송국을 스캐닝하는 것과 하나의 특정 방송국을 청취하는 것을 구별하는 단계; 및
    임의의 모드 시간 임계치에 도달하기 전까지 미리보기 컨텐츠 클립을 재생하는 단계;를
    실행하는 컴퓨터 판독가능 기록매체.
  23. 제22항에 있어서,
    상기 컨텐츠원에 접속하는 단계는,
    상기 전자장치가 상기 컨텐츠를 위해, 개방된 상태를 유지하는 오픈 커맨드 채널을 통해 상기 컨텐츠원에 접속하며,
    상기 컨텐츠를 프리패치하는 단계는,
    상기 복수의 방송국의 데크 상에 있는 모든 컨텐츠에 대한 미리보기 컨텐츠 클립, 커버 아트(cover art) 및 메타 데이터를 프리패치하며,
    상기 오픈 커맨드 채널은 오픈 웹소켓(Open WebSocket) 커맨드 채널을 포함하고,
    상기 컨텐츠원은 서버를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 기록매체.
  24. 제23항에 있어서,
    안테나의 웨이크업 및 웹 접속 시간에 관련된 지연시간(latency)을 감소시키기 위해 상기 전자장치로 하트비트(heartbeat) 신호를 주기적으로 전송하는 단계;
    상기 컨텐츠의 파일 시스템으로부터의 미리보기 컨텐츠 클립을 상기 전자장치 내의 메모리에 로딩하는 단계; 및
    임의의 청취 모드 시간 임계치에 도달하기 전까지 상기 미리보기 컨텐츠 클립을 재생하는 단계;를
    더 실행하는 컴퓨터 판독가능 기록매체.
  25. 제24항에 있어서,
    상기 컨텐츠의 재생은 상기 임의의 청취 모드 시간 임계치에 도달하기에 앞서 스캐닝 모드 상태를 유지하고,
    상기 임의의 청취 모드 시간 임계치에 도달한 후, 상기 메모리 내의 컨텐츠가 제1 특정 스토리지 크기 임계치보다 작은지 점검하고,
    상기 메모리 내의 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 작으면, 컨텐츠 데이터를 추가로 요청하는 것을 특징으로 하는 컴퓨터 판독가능 기록매체.
  26. 제25항에 있어서,
    상기 메모리 내의 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 큰지 판단하고, 상기 메모리 내의 컨텐츠가 상기 제1 특정 스토리지 크기 임계치보다 크면, 현재 선택된 방송국의 재생을 위해 이용 가능한 다음 컨텐츠의 미리보기 컨텐츠 클립을 요청하는 단계;를 더 포함하며,
    임의의 지점에 도달하고, 상기 메모리 내에 컨텐츠를 유지하는 재생이 상기 현재 선택된 방송국 상에서 재생되는 컨텐츠를 위한 제2 특정 스토리지 크기 임계치보다 작을 때, 컨텐츠 데이터를 추가로 요청하는 것을 특징으로 하는 컴퓨터 판독가능 기록매체.
  27. 제23항에 있어서,
    상기 컨텐츠는 오디오 및 비디오 데이터 중 적어도 하나를 포함하고,
    상기 컨텐츠의 제공에 관련된 상기 컨텐츠원으로의 요청은 비동기식(asynchronous)으로 이루어지며,
    상기 오픈 커맨드 채널은 서로 다른 복수의 전송 방식을 지원하는 분리된 전송층을 포함하며,
    상기 접속 및 상기 접속의 유지는, 표준 HTTP에 근거하여 이루어지는 것을 특징으로 하는 컴퓨터 판독가능 기록매체.
  28. 제22항에 있어서,
    상기 전자장치와 상기 컨텐츠원 사이에 연결되는 프락시(proxy)를 포함하며,
    상기 프락시가, 상기 전자장치와 상기 컨텐츠원 사이에서 웹소켓을 통해 접속하는 단계;
    상기 웹소켓을 통한 접속이 완료된 후, 상기 프락시가 모든 HTTP 요청들을 상기 전자장치로부터 수신하는 단계;
    상기 프락시가, 상기 전자 장치로부터 수신된 HTTP 요청을 파싱하고, HTTP 로컬 풀에 상기 HTTP 요청들의 일부를 저장하며, 저장되지 않는 다른 HTTP 요청들을 상기 웹소켓을 통해 상기 컨텐츠원으로 전송하는 단계; 및
    상기 프락시가, 상기 컨텐츠원으로부터 수신된 초기 HTTP 응답을 패치하고, 상기 컨텐츠원으로부터 수신된 응답을 파이핑(piping)하는 단계;를 더 포함하되,
    상기 HTTP 로컬 풀 내의 HTTP 요청은 임의의 시간 간격 후에 타임 아웃되고, 삭제되고,
    상기 웹소켓을 통한 접속이 방해받거나 끊길 때, 상기 프락시는 상기 웹소켓을 통해 접속을 재시도하는 것을 특징으로 하는 컴퓨터 판독가능 기록매체.
  29. 컨텐츠를 제공하는 컨텐츠원과 비동기식 통신 링크를 유지하는 단계;
    상기 통신 링크를 통해 다수의 컨텐츠 부분들(multiple pieces fo content)을 위한 컨텐츠 정보를 프리패치하는 단계; 및
    전자장치에서의 재생을 위해 프리패치 메모리에 상기 프리패치한 컨텐츠 정보를 파싱하는 단계;를 포함하되,
    상기 컨텐츠 정보는,
    상기 다수의 컨텐츠 부분들에 관련된 데이터 집합을 포함하고,
    상기 컨텐츠 정보를 프리패칭하는 단계는, 상기 컨텐츠를 위해 라디오 방송 메뉴의 데이터를 프리패칭하고, 상기 전자장치에 상기 데이터를 캐싱하는 단계를 포함하고,
    사용자가 재생을 위한 컨텐츠를 선택하는 과정에서 상기 전자장치 상에서 컨텐츠를 스킵할 때, 상기 캐싱된 정보로부터 컨텐츠 메타데이터를 검색하는 단계를 더 포함하는, 컨텐츠 접속 방법.
  30. 제29항에 있어서,
    사용자의 선택을 위해 상기 프리패치 메모리로부터 상기 프리패치한 컨텐츠 정보를 임시로 표시하는(presenting) 단계; 및
    상기 다수의 컨텐츠 부분들에서 선택된 적어도 하나의 컨텐츠를 재생하는 단계;를
    더 포함하는 컨텐츠 접속 방법.
  31. 제29항에 있어서,
    상기 다수의 컨텐츠 부분들에서 각 컨텐츠를 위한 재생 종료 기간에 근거하여 상기 다수의 컨텐츠 부분들 중 적어도 하나에 대한 컨텐츠 정보를 주기적으로 프리패칭하는 단계;를 더 포함하는 컨텐츠 접속 방법.
  32. 삭제
  33. 제29항에 있어서,
    상기 컨텐츠 정보를 프리패칭하는 단계는, 컨텐츠에 대한 초기 접속 동안 모든 컨텐츠를 위한 컨텐츠 정보를 프리패칭하는 단계;를 더 포함하는 것을 특징으로 하는 컨텐츠 접속 방법.
  34. 제33항에 있어서,
    컨텐츠 정보를 프리패칭하는 단계는, 컨텐츠에 접속을 시작한 후, 선택된 일련의 컨텐츠를 위한 라디오 방송국 정보를 프리패칭하는 단계;를 더 포함하는 것을 특징으로 하는 컨텐츠 접속 방법.
  35. 삭제
  36. 복수의 세그먼트 및 적어도 하나의 이동가능한 요소를 포함하는 다이얼을 적어도 하나의 방향으로 회전하는 단계; 및
    손가락 제스처 패턴에 근거하여 컨텐츠 미리보기(previewing) 및 컨텐츠 변경을 제어하는 단계;를 포함하되,
    상기 다이얼은,
    전자장치의 터치 스크린상의 상기 손가락 제스처 패턴에 근거해 이동가능하며,
    상기 다이얼 상의 상기 복수의 세그먼트는,
    다른 하나와 고정된 거리로 떨어진 공간에 위치하고, 상기 터치 스크린상에서 특정 손가락 제스처 패턴에 근거해 공간상 떨어진 거리를 변경하는 것을 특징으로 하는 전자장치의 컨텐츠 재생 선택 방법.
  37. 제36항에 있어서,
    상기 이동가능한 요소는, 상기 다이얼의 특정 세그먼트를 선택하거나 미리보기하기 위한 적어도 하나의 방향으로 이동하도록 구성되고,
    상기 복수의 세그먼트들 각각은 특정 컨텐츠 그룹에 연계되며,
    상기 특정 컨텐츠 그룹은 적어도 하나의 음악 방송 메뉴들, 적어도 하나의 비디오 방송 메뉴들 및 적어도 하나의 컨텐츠 컬렉션들 중 적어도 하나를 포함하는 것을 특징으로 하는 전자 장치의 컨텐츠 재생 선택 방법.
KR1020140111790A 2013-09-27 2014-08-26 컨텐츠 재생을 위한 클라이언트, 컨텐츠 재생 방법, 컨텐츠 접속 제공 방법, 전자 장치의 컨텐츠 재생 선택 방법 및 컴퓨터 판독가능 기록매체 KR102301637B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP14185178.2A EP2854315B1 (en) 2013-09-27 2014-09-17 Initially establishing and periodically prefetching digital content

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201361883845P 2013-09-27 2013-09-27
US61/883,845 2013-09-27
US201361896470P 2013-10-28 2013-10-28
US61/896,470 2013-10-28
US201461928959P 2014-01-17 2014-01-17
US61/928,959 2014-01-17
US14/181,570 2014-02-14
US14/181,570 US9628543B2 (en) 2013-09-27 2014-02-14 Initially establishing and periodically prefetching digital content

Publications (2)

Publication Number Publication Date
KR20150035387A KR20150035387A (ko) 2015-04-06
KR102301637B1 true KR102301637B1 (ko) 2021-09-14

Family

ID=52741424

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140111790A KR102301637B1 (ko) 2013-09-27 2014-08-26 컨텐츠 재생을 위한 클라이언트, 컨텐츠 재생 방법, 컨텐츠 접속 제공 방법, 전자 장치의 컨텐츠 재생 선택 방법 및 컴퓨터 판독가능 기록매체

Country Status (2)

Country Link
US (1) US9628543B2 (ko)
KR (1) KR102301637B1 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2903830C (en) 2013-03-05 2021-08-24 Fasetto, Llc System and method for cubic graphical user interfaces
US10095873B2 (en) 2013-09-30 2018-10-09 Fasetto, Inc. Paperless application
US20150121314A1 (en) * 2013-10-24 2015-04-30 Jens Bombolowsky Two-finger gestures
USD754182S1 (en) * 2013-12-20 2016-04-19 Teenage Engineering Ab Display screen or portion thereof with graphical user interface
US9584402B2 (en) 2014-01-27 2017-02-28 Fasetto, Llc Systems and methods for peer to peer communication
USD776126S1 (en) 2014-02-14 2017-01-10 Samsung Electronics Co., Ltd. Display screen or portion thereof with a transitional graphical user interface
USD754714S1 (en) * 2014-06-17 2016-04-26 Tencent Technology (Shenzhen) Company Limited Portion of a display screen with animated graphical user interface
USD754713S1 (en) * 2014-06-17 2016-04-26 Tencent Technology (Shenzhen) Company Limited Portion of a display screen with animated graphical user interface
MX2017000339A (es) 2014-07-10 2017-08-14 Fasetto Llc Sistemas y metodos para editar mensajes.
GB2528672B (en) * 2014-07-25 2017-02-08 Canon Kk Push-based transmission of resources and correlated network quality estimation
USD805536S1 (en) * 2014-08-29 2017-12-19 Cheetah Mobile Inc. Display screen or portion thereof with a graphical user interface
US10437288B2 (en) 2014-10-06 2019-10-08 Fasetto, Inc. Portable storage device with modular power and housing system
EP3205176B1 (en) 2014-10-06 2021-12-29 Fasetto, Inc. Systems and methods for portable storage devices
US10225317B2 (en) * 2014-10-30 2019-03-05 Be-Bound Inc. Asynchronous application data access system and method
US20160148126A1 (en) 2014-11-20 2016-05-26 Atom Tickets, LLC Automated event concessions management system
CN107852421B (zh) * 2015-03-11 2021-02-05 法斯埃托股份有限公司 用于web api通信的系统和方法
US10033794B2 (en) * 2015-07-17 2018-07-24 Bio-Rad Laboratories, Inc. Network transfer of large files in unstable network environments
US10929071B2 (en) 2015-12-03 2021-02-23 Fasetto, Inc. Systems and methods for memory card emulation
USD853417S1 (en) * 2016-07-11 2019-07-09 Xiaofeng Li Display screen with graphical user interface for operating an electronic candle
CA3044665A1 (en) 2016-11-23 2018-05-31 Fasetto, Inc. Systems and methods for streaming media
US10623450B2 (en) * 2016-12-01 2020-04-14 Accenture Global Solutions Limited Access to data on a remote device
US11708051B2 (en) 2017-02-03 2023-07-25 Fasetto, Inc. Systems and methods for data storage in keyed devices
KR102332525B1 (ko) * 2017-06-01 2021-11-29 삼성전자주식회사 전자 장치 및 그 동작방법
USD890770S1 (en) * 2017-06-23 2020-07-21 Genoscreen Display screen or portion thereof with graphical user interface
WO2019018716A1 (en) * 2017-07-21 2019-01-24 Infrared5, Inc. SYSTEM AND METHOD FOR USING PROXY TO COMMUNICATE BETWEEN SECURE AND UNSECURED DEVICES
CN107454184B (zh) * 2017-08-22 2020-07-24 深圳先进技术研究院 Android客户端与服务器建立稳定网络连接的方法
US10771579B2 (en) * 2017-09-25 2020-09-08 Verizon Patent And Licensing, Inc. Redirection of data flows from an end device
WO2019079628A1 (en) 2017-10-19 2019-04-25 Fasetto, Inc. PORTABLE ELECTRONIC DEVICE CONNECTING SYSTEMS
US10656902B2 (en) 2018-03-05 2020-05-19 Sonos, Inc. Music discovery dial
EP3782112A4 (en) 2018-04-17 2022-01-05 Fasetto, Inc. DEVICE PRESENTATION WITH REAL-TIME FEEDBACK
US10911801B1 (en) * 2018-08-21 2021-02-02 CSC Holdings, LLC CPE real-time event capture and notification
KR102118666B1 (ko) * 2019-05-29 2020-06-05 (주)토마토시스템 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램
CN110162394B (zh) * 2019-05-31 2022-09-23 北京字节跳动网络技术有限公司 媒体对象的播放方法、装置、电子设备及存储介质
US20230413369A1 (en) * 2022-06-21 2023-12-21 Trilogy 5G, Inc. Heartbeat system and method for broadcast system
US11652890B1 (en) 2022-07-13 2023-05-16 Oxylabs, Uab Methods and systems to maintain multiple persistent channels between proxy servers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010030660A1 (en) * 1999-12-10 2001-10-18 Roustem Zainoulline Interactive graphical user interface and method for previewing media products
US20110161409A1 (en) * 2008-06-02 2011-06-30 Azuki Systems, Inc. Media mashup system

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5892535A (en) 1996-05-08 1999-04-06 Digital Video Systems, Inc. Flexible, configurable, hierarchical system for distributing programming
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US6502194B1 (en) * 1999-04-16 2002-12-31 Synetix Technologies System for playback of network audio material on demand
US7340761B2 (en) * 2001-02-20 2008-03-04 Digeo, Inc. System and method for delivering radio programs and related schedule information
US7312785B2 (en) 2001-10-22 2007-12-25 Apple Inc. Method and apparatus for accelerated scrolling
US7956272B2 (en) 2002-07-30 2011-06-07 Apple Inc. Management of files in a personal communication device
US20050044509A1 (en) 2003-05-07 2005-02-24 Hunleth Frank A. Item selection using helical menus
US20050050209A1 (en) 2003-08-27 2005-03-03 Main James David Method and apparatus to maintain wireless network communications through a firewall
US20050108754A1 (en) * 2003-11-19 2005-05-19 Serenade Systems Personalized content application
US7865723B2 (en) 2004-08-25 2011-01-04 General Instrument Corporation Method and apparatus for multicast delivery of program information
US7764268B2 (en) 2004-09-24 2010-07-27 Immersion Corporation Systems and methods for providing a haptic device
US8458125B1 (en) 2005-01-31 2013-06-04 Oracle America, Inc. Dynamic creation of replicas of streaming data from a storage device without added load
US20070088681A1 (en) 2005-10-17 2007-04-19 Veveo, Inc. Method and system for offsetting network latencies during incremental searching using local caching and predictive fetching of results from a remote server
US7812826B2 (en) 2005-12-30 2010-10-12 Apple Inc. Portable electronic device with multi-touch input
US7683918B2 (en) 2006-03-17 2010-03-23 Motorola, Inc. User interface and method therefor
US8677257B2 (en) 2006-08-04 2014-03-18 Apple Inc. Granular graphical user interface element
US7743341B2 (en) 2006-09-11 2010-06-22 Apple Inc. Rendering icons along a multidimensional path having a terminus position
JP4758408B2 (ja) 2007-10-18 2011-08-31 シャープ株式会社 選択候補表示方法、選択候補表示装置および入出力装置
US7941765B2 (en) 2008-01-23 2011-05-10 Wacom Co., Ltd System and method of controlling variables using a radial control menu
GB2469235B (en) 2008-01-31 2013-04-03 Ericsson Telefon Ab L M Method and apparatus for obtaining media over a communications network
US7779148B2 (en) 2008-02-01 2010-08-17 International Business Machines Corporation Dynamic routing based on information of not responded active source requests quantity received in broadcast heartbeat signal and stored in local data structure for other processor chips
US8028081B2 (en) * 2008-05-23 2011-09-27 Porto Technology, Llc System and method for adaptive segment prefetching of streaming media
US8245156B2 (en) 2008-06-28 2012-08-14 Apple Inc. Radial menu selection
US8634944B2 (en) 2008-07-10 2014-01-21 Apple Inc. Auto-station tuning
US20100058240A1 (en) 2008-08-26 2010-03-04 Apple Inc. Dynamic Control of List Navigation Based on List Item Properties
USD631060S1 (en) 2008-12-01 2011-01-18 Deutsche Telekom Ag Transitional user interface for a portion of a display screen
US8686952B2 (en) 2008-12-23 2014-04-01 Apple Inc. Multi touch with multi haptics
US7657337B1 (en) * 2009-04-29 2010-02-02 Lemi Technology, Llc Skip feature for a broadcast or multicast media station
US9459936B2 (en) 2009-05-01 2016-10-04 Kaazing Corporation Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
US8165546B2 (en) 2009-05-05 2012-04-24 Apple Inc. Communicating radio presets between a portable media player and an accessory
EP2558957A2 (en) 2010-04-12 2013-02-20 Google, Inc. Scrolling in large hosted data set
US20110251987A1 (en) * 2010-04-13 2011-10-13 Buchheit Brian K Time-shifting a content streaming request
USD687046S1 (en) 2011-08-16 2013-07-30 Nest Labs, Inc. Display screen with a graphical user interface
USD698363S1 (en) 2010-12-28 2014-01-28 Sony Corporation Display screen with a graphical user interface
US9547428B2 (en) 2011-03-01 2017-01-17 Apple Inc. System and method for touchscreen knob control
US20120257560A1 (en) 2011-04-07 2012-10-11 Sudharshan Srinivasan Cellular data bandwidth optimization using social networking concepts
US20130031162A1 (en) 2011-07-29 2013-01-31 Myxer, Inc. Systems and methods for media selection based on social metadata
WO2013052056A1 (en) 2011-10-06 2013-04-11 Intel Corporation Apparatus and method for dynamically managing memory access bandwidth in multi-core processor
USD716325S1 (en) 2011-10-21 2014-10-28 Sequent Software Inc. Display screen with a graphical user interface
WO2013103988A1 (en) 2012-01-05 2013-07-11 Seven Networks, Inc. Detection and management of user interactions with foreground applications on a mobile device in distributed caching
USD690734S1 (en) 2012-01-11 2013-10-01 Omron Healthcare Co., Ltd. Screen for a mobile terminal device
USD727928S1 (en) 2013-02-15 2015-04-28 dotloop, Inc. Display screen with animated user interface
USD741898S1 (en) 2013-05-29 2015-10-27 Microsoft Corporation Display screen with animated graphical user interface
USD752072S1 (en) 2013-06-21 2016-03-22 Tencent Technology (Shenzhen) Company Limited Portion of a display screen with animated graphical user interface
US20150040069A1 (en) 2013-07-31 2015-02-05 Oracle International Corporation User interface for tracking health behaviors
USD749634S1 (en) 2013-10-23 2016-02-16 Google Inc. Portion of a display panel with a computer icon
USD745046S1 (en) 2013-10-25 2015-12-08 Microsoft Corporation Display screen with animated graphical user interface
USD744535S1 (en) 2013-10-25 2015-12-01 Microsoft Corporation Display screen with animated graphical user interface
USD750646S1 (en) 2013-12-26 2016-03-01 Omron Healthcare Co., Ltd. Display screen of mobile device with graphical user interface
USD753131S1 (en) 2014-04-03 2016-04-05 Google Inc. Portion of a display panel with an animated computer icon
KR102353766B1 (ko) 2014-04-15 2022-01-20 삼성전자 주식회사 디스플레이를 제어하는 장치 및 방법
KR20160039501A (ko) 2014-10-01 2016-04-11 삼성전자주식회사 디스플레이 장치 및 그 제어 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010030660A1 (en) * 1999-12-10 2001-10-18 Roustem Zainoulline Interactive graphical user interface and method for previewing media products
US20110161409A1 (en) * 2008-06-02 2011-06-30 Azuki Systems, Inc. Media mashup system

Also Published As

Publication number Publication date
US9628543B2 (en) 2017-04-18
KR20150035387A (ko) 2015-04-06
US20150095777A1 (en) 2015-04-02

Similar Documents

Publication Publication Date Title
KR102301637B1 (ko) 컨텐츠 재생을 위한 클라이언트, 컨텐츠 재생 방법, 컨텐츠 접속 제공 방법, 전자 장치의 컨텐츠 재생 선택 방법 및 컴퓨터 판독가능 기록매체
US9318152B2 (en) Super share
US8281077B2 (en) Local media cache with leader files
US11403341B2 (en) Methods and systems for adapting playlists
US8417180B2 (en) Methods and systems for mixing media with communications
US20130326569A1 (en) Method and system for playing video streams
US10579325B2 (en) Method and system for playback of audio content using wireless mobile device
US9537913B2 (en) Method and system for delivery of audio content for use on wireless mobile device
US11889165B2 (en) Methods, computer server systems and media devices for media streaming
WO2022095502A1 (zh) 视频获取方法及终端
EP2854315B1 (en) Initially establishing and periodically prefetching digital content
US20090240710A1 (en) Method and system for creating a reduced media file for use on a mobile device
US11500925B2 (en) Playback of audio content along with associated non-static media content
US20120036104A1 (en) System and method for synchronizing media files and associated media art

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant