人們?cè)絹碓蕉嗟卦谄湟苿?dòng)設(shè)備上觀看視頻和電影。因此,移動(dòng)運(yùn)營商在滿足對(duì)其網(wǎng)絡(luò)支持主要由智能電話用戶的音頻和視頻流送及消耗貢獻(xiàn)的話務(wù)量增加呈指數(shù)級(jí)增長(zhǎng)的需求方面受到挑戰(zhàn)。對(duì)用戶在移動(dòng)設(shè)備上觀看視頻時(shí)的使用模式的新近統(tǒng)計(jì)表明,大多數(shù)用戶在視頻結(jié)束之前就中止視頻的回放。由應(yīng)用使用的當(dāng)前媒體預(yù)獲取器(諸如由應(yīng)用(包括和)使用的平臺(tái)的預(yù)獲取器)使用所有可用帶寬來下載多媒體流并且通常過量預(yù)獲取用戶很可能不會(huì)播放的數(shù)據(jù)。這種對(duì)數(shù)據(jù)的過量預(yù)獲取的常用解決方案是所謂的服務(wù)器側(cè)“步進(jìn)(pacing)”技術(shù),其根據(jù)從服務(wù)器側(cè)所監(jiān)視到的網(wǎng)絡(luò)狀況對(duì)流送進(jìn)行扼流。這些服務(wù)器側(cè)解決方案可能實(shí)現(xiàn)起來是復(fù)雜的,并且可能要求昂貴的服務(wù)器側(cè)網(wǎng)絡(luò)監(jiān)視系統(tǒng)。
概述
各個(gè)實(shí)施例的系統(tǒng)、方法和設(shè)備使得接收機(jī)設(shè)備能夠基于與所選媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)來確定高速緩存的高水標(biāo)余量和低水標(biāo)余量并且至少部分地基于所確定的高水標(biāo)余量和低水標(biāo)余量來控制該媒體實(shí)例的諸部分的下載。在一實(shí)施例中,高水標(biāo)余量和低水標(biāo)余量可基于媒體實(shí)例的回放速率并且分別基于高水標(biāo)余量時(shí)間值和低水標(biāo)余量時(shí)間值來確定。在一實(shí)施例中,高水標(biāo)余量時(shí)間值和/或低水標(biāo)余量時(shí)間值可基于使用統(tǒng)計(jì)(諸如中止模式)。在一實(shí)施例中,低水標(biāo)余量可基于媒體實(shí)例的經(jīng)緩沖部分的變化率來確定,并且高水標(biāo)余量可基于所確定的低水標(biāo)余量和回放速率來確定。在一實(shí)施例中,高水標(biāo)余量和/或低水標(biāo)余量還可至少部分地基于中止模式系數(shù)。中止模式系數(shù)可基于使用統(tǒng)計(jì)并且可在接收機(jī)設(shè)備處確定和/或接收自服務(wù)器。
附圖簡(jiǎn)述
納入本文且構(gòu)成本說明書一部分的附圖解說了本發(fā)明的示例性實(shí)施例,并與以上給出的概括描述和下面給出的詳細(xì)描述一起用來解釋本發(fā)明的特征。
圖1是適用于各個(gè)實(shí)施例的網(wǎng)絡(luò)的通信系統(tǒng)框圖。
圖2解說了適用于各個(gè)實(shí)施例的接收機(jī)設(shè)備的示例系統(tǒng)架構(gòu)。
圖3是解說根據(jù)一實(shí)施例的媒體實(shí)例、接收機(jī)設(shè)備的高速緩存、高水標(biāo)余量、和低水標(biāo)余量之間的交互的媒體實(shí)例的框圖。
圖4是解說用于在接收機(jī)設(shè)備上預(yù)獲取媒體的實(shí)施例方法的過程流圖。
圖5是解說用于至少部分地基于所確定的高水標(biāo)余量和所確定的低水標(biāo)余量來控制媒體實(shí)例的諸部分至高速緩存的下載的實(shí)施例方法的過程流圖。
圖6是解說用于基于與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)來確定接收機(jī)設(shè)備的高速緩存的高水標(biāo)余量和低水標(biāo)余量的實(shí)施例方法的過程流圖。
圖7是解說用于基于與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)來確定接收機(jī)設(shè)備的高速緩存的高水標(biāo)余量和低水標(biāo)余量的另一實(shí)施例方法的過程流圖。
圖8是解說用于基于與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)來確定接收機(jī)設(shè)備的高速緩存的高水標(biāo)余量和低水標(biāo)余量的第三實(shí)施例方法的過程流圖。
圖9是解說用于基于使用統(tǒng)計(jì)來生成中止模式系數(shù)和/或高水標(biāo)余量和低水標(biāo)余量的實(shí)施例方法的過程流圖。
圖10是適用于各個(gè)實(shí)施例的示例接收機(jī)設(shè)備的組件示圖。
圖11是適用于各個(gè)實(shí)施例的示例服務(wù)器的組件示圖。
詳細(xì)描述
將參照附圖詳細(xì)描述各實(shí)施例。在可能之處,相同附圖標(biāo)記將貫穿附圖用于指代相同或類似部分。對(duì)特定示例和實(shí)現(xiàn)所作的引用是用于解說性目的,而無意限定本發(fā)明或權(quán)利要求的范圍。
措辭“示例性”在本文中用于表示“用作示例、實(shí)例或解說”。本文中描述為“示例性”的任何實(shí)現(xiàn)不必然被解釋為優(yōu)于或勝過其他實(shí)現(xiàn)。
如本文中所使用的,術(shù)語“接收機(jī)設(shè)備”用于指代以下任一者或全部:蜂窩電話、智能電話、個(gè)人或移動(dòng)多媒體播放器、個(gè)人數(shù)據(jù)助理(“PDA”)、個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、智能本、掌上計(jì)算機(jī)、無線電子郵件接收器、啟用因特網(wǎng)的多媒體蜂窩電話、無線游戲控制器、個(gè)人計(jì)算機(jī)、電視機(jī)頂盒、電視、有線電視接收機(jī)、以及包括可編程處理器和存儲(chǔ)器以及用于執(zhí)行本文所描述的操作(諸如預(yù)獲取媒體)的電路系統(tǒng)的類似個(gè)人電子設(shè)備。
術(shù)語“服務(wù)器”在本文中用于指代能夠用作服務(wù)器(諸如主交換服務(wù)器、web服務(wù)器、郵件服務(wù)器、文檔服務(wù)器、內(nèi)容服務(wù)器、或任何其他類型的服務(wù)器)的任何計(jì)算設(shè)備。服務(wù)器可以是專用計(jì)算設(shè)備或包括服務(wù)器模塊(諸如可導(dǎo)致計(jì)算設(shè)備作為服務(wù)器來操作的應(yīng)用)的計(jì)算設(shè)備。服務(wù)器模塊(例如,服務(wù)器應(yīng)用)可以是全功能服務(wù)器模塊、或被配置成在移動(dòng)設(shè)備上提供動(dòng)態(tài)數(shù)據(jù)庫間的同步服務(wù)的輕量級(jí)或副服務(wù)器模塊(例如,輕量級(jí)或副服務(wù)器應(yīng)用)。輕量級(jí)服務(wù)器或副服務(wù)器可以是服務(wù)器型功能性的精簡(jiǎn)版,其可以在移動(dòng)設(shè)備上實(shí)現(xiàn)由此使得移動(dòng)設(shè)備能夠僅在用于提供本文描述的功能性所必需的程度上用作因特網(wǎng)服務(wù)器(例如,企業(yè)電子郵件服務(wù)器)。
如本文所使用的,術(shù)語“媒體實(shí)例”用于指代可在接收機(jī)設(shè)備上回放的任何類型的媒體數(shù)據(jù),諸如視頻流送數(shù)據(jù)、音頻流送數(shù)據(jù)、多媒體流送數(shù)據(jù)等。媒體實(shí)例可包括可被下載至接收機(jī)設(shè)備并由在該接收機(jī)設(shè)備的處理器上運(yùn)行的應(yīng)用或客戶端(諸如視頻播放器(例如,)、音樂播放器(例如,)、web瀏覽器等)回放的數(shù)據(jù)部分。構(gòu)成媒體實(shí)例的這些數(shù)據(jù)部分可由預(yù)獲取模塊(諸如平臺(tái)中使用的StageFright)下載至高速緩存,并且可供由客戶端或應(yīng)用進(jìn)行回放。雖然各個(gè)實(shí)施例和示例在本文中是參照StageFright和平臺(tái)、以及諸如或之類的應(yīng)用或客戶端來討論的,但是對(duì)StageFright、平臺(tái)、和的討論僅僅用作示例以更好地解說各個(gè)實(shí)施例的諸方面,而不旨在限制權(quán)利要求的范圍。其他預(yù)獲取器、其他平臺(tái)(諸如平臺(tái))、以及其他應(yīng)用或客戶端可在各個(gè)示例和實(shí)施例中被替換而不會(huì)脫離本發(fā)明的精神或范圍。
各個(gè)實(shí)施例的系統(tǒng)、方法和設(shè)備使得接收機(jī)設(shè)備能夠基于與所選媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)來確定高速緩存的高水標(biāo)余量和低水標(biāo)余量,并且至少部分地基于所確定的高水標(biāo)余量和低水標(biāo)余量來控制媒體實(shí)例的諸部分的下載。各個(gè)實(shí)施例可提供使得預(yù)獲取緩沖算法能夠根據(jù)接收機(jī)設(shè)備處的流回放特性和所監(jiān)視到的網(wǎng)絡(luò)狀況來被改變以阻止對(duì)媒體實(shí)例的諸部分的下載超過高水標(biāo)余量和/或低于低水標(biāo)余量的設(shè)備側(cè)解決方案。通過動(dòng)態(tài)地配置高水標(biāo)余量和/或低水標(biāo)余量,各個(gè)實(shí)施例可確保高速緩存中剩余數(shù)據(jù)的大小被維持在高水標(biāo)余量與低水標(biāo)余量之間,同時(shí)維持來自高速緩存的媒體實(shí)例的連續(xù)回放。各個(gè)實(shí)施例可提供接收機(jī)設(shè)備實(shí)現(xiàn)的對(duì)數(shù)據(jù)的過量預(yù)獲取的解決方案,這些解決方案比服務(wù)器實(shí)現(xiàn)的根據(jù)從服務(wù)器側(cè)監(jiān)視到的網(wǎng)絡(luò)狀況對(duì)流送進(jìn)行扼流的技術(shù)更易于集成并且成本更低。各個(gè)實(shí)施例可使高水標(biāo)余量的大小與高速緩存的最大大小解除鏈接并且可減少每次預(yù)獲取的數(shù)據(jù)量,由此使得在用戶在媒體實(shí)例結(jié)束之前中止該媒體實(shí)例的回放時(shí)可能消耗的下載帶寬量最小化。
在各個(gè)實(shí)施例中,媒體實(shí)例的諸部分至高速緩存的下載狀態(tài)可由兩個(gè)限值——低水標(biāo)余量和高水標(biāo)余量——來控制。在各個(gè)實(shí)施例中,高水標(biāo)余量可以是表示與高速緩存末尾的大小偏移(例如,諸如字節(jié)偏移)的值,其可小于最大高速緩存大小。以此方式,高水標(biāo)余量可表示在高速緩存中所存儲(chǔ)的最后一個(gè)存取點(diǎn)前方的媒體實(shí)例的經(jīng)緩沖部分的最大量的目標(biāo)。當(dāng)最后一個(gè)存取點(diǎn)與高速緩存末尾之間的余量(例如,經(jīng)緩沖部分的大小)達(dá)到高水標(biāo)余量時(shí),可暫停下載媒體實(shí)例(例如,通過停止對(duì)未下載部分的下一部分的下載)。在各個(gè)實(shí)施例中,低水標(biāo)余量可以是表示與高速緩存末尾的大小偏移(例如,諸如字節(jié)偏移)的值,其可小于高水標(biāo)余量。以此方式,低水標(biāo)余量可表示在最后一個(gè)存取點(diǎn)前方的媒體實(shí)例的經(jīng)緩沖部分的最小量的目標(biāo)。當(dāng)最后一個(gè)存取點(diǎn)與高速緩存末尾之間的余量(例如,經(jīng)緩沖部分的大小)達(dá)到低水標(biāo)余量時(shí),可開始(或重新開始)下載媒體實(shí)例(例如,通過請(qǐng)求媒體實(shí)例的未下載部分的下一部分)。
在一實(shí)施例中,高水標(biāo)余量和低水標(biāo)余量可基于媒體實(shí)例的回放速率并且分別基于高水標(biāo)余量時(shí)間值和低水標(biāo)余量時(shí)間值來確定。媒體實(shí)例的回放速率可基于與該媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)來確定。例如,使用如媒體實(shí)例的報(bào)頭信息中指示的媒體實(shí)例的大小和歷時(shí),回放速率可被確定為媒體實(shí)例的大小除以媒體實(shí)例的歷時(shí)。在一實(shí)施例中,高水標(biāo)余量時(shí)間值和/或低水標(biāo)余量時(shí)間值可與媒體實(shí)例的回放速率協(xié)同使用以分別確定高水標(biāo)余量和/或低水標(biāo)余量。高水標(biāo)余量時(shí)間值可以是被選擇成計(jì)及媒體播放器的用于恢復(fù)回放的時(shí)間設(shè)定的時(shí)間值并且可被存儲(chǔ)在接收機(jī)設(shè)備的存儲(chǔ)器中。例如,高水標(biāo)余量時(shí)間值可以是10秒。
在一實(shí)施例中,高水標(biāo)余量可通過將高水標(biāo)余量時(shí)間值乘以所確定的媒體實(shí)例的回放速率來確定。低水標(biāo)余量時(shí)間值可以是被選擇成計(jì)及媒體播放器的用于暫?;胤诺臅r(shí)間設(shè)定的時(shí)間值并且可被存儲(chǔ)在接收機(jī)設(shè)備的存儲(chǔ)器中。例如,低水標(biāo)余量時(shí)間值可以是2秒。在一實(shí)施例中,低水標(biāo)余量可通過將低水標(biāo)余量時(shí)間值乘以所確定的媒體實(shí)例的回放速率來確定。替換地,高水標(biāo)余量時(shí)間值和/或低水標(biāo)余量時(shí)間值可在媒體實(shí)例的報(bào)頭信息中指示。
在一實(shí)施例中,可在媒體實(shí)例被首次選擇和/或處于初始回放時(shí)使用高水標(biāo)余量和/或低水標(biāo)余量的初始默認(rèn)值,并且一旦回放速率被確定,就可基于所確定的回放速率來確定因媒體實(shí)例而異的新的高水標(biāo)余量和/或低水標(biāo)余量并且替代高水標(biāo)余量和/或低水標(biāo)余量的初始默認(rèn)值。
在各個(gè)實(shí)施例中,可跟蹤在回放媒體實(shí)例時(shí)的接收機(jī)設(shè)備行為(乃至用戶行為)。例如,可通過關(guān)閉正在播放媒體實(shí)例的媒體播放器應(yīng)用或客戶端、通過媒體播放器應(yīng)用或客戶端掛起回放達(dá)閾值時(shí)間段(例如,響應(yīng)于停止回放的用戶命令)、或者通過選擇新媒體實(shí)例以供應(yīng)用或客戶端進(jìn)行回放來中止媒體實(shí)例。由此,處理器或服務(wù)器可通過在回放媒體實(shí)例期間檢測(cè)到或識(shí)別出這些事件中的任一者來確定特定媒體實(shí)例的回放已被中止。在一實(shí)施例中,此行為(例如,回放中止)可由執(zhí)行操作以檢測(cè)此類事件或指示媒體實(shí)例的回放已被中止的其他事件或操作的接收機(jī)設(shè)備的處理器來跟蹤。在另一實(shí)施例中,服務(wù)器可通過在完整媒體文件已被遞送之前識(shí)別并記錄對(duì)媒體實(shí)例的諸部分的請(qǐng)求何時(shí)停止來識(shí)別(并由此跟蹤)回放中止行為。服務(wù)器可在自最后一次下載請(qǐng)求起的時(shí)間超過閾值(例如,預(yù)定時(shí)間或所請(qǐng)求的最后一次下載的回放時(shí)間)時(shí)、在從接收機(jī)設(shè)備接收到通知服務(wù)器應(yīng)當(dāng)停止下載或回放已被掛起的信號(hào)時(shí)、和/或在完整媒體文件已被遞送之前從接收機(jī)設(shè)備接收到對(duì)不同媒體實(shí)例的下載請(qǐng)求時(shí)識(shí)別出對(duì)媒體實(shí)例的諸部分的請(qǐng)求已停止。
可確定與所確定的接收機(jī)設(shè)備行為相關(guān)聯(lián)的關(guān)于媒體實(shí)例回放的參數(shù),諸如指示從初始回放起媒體實(shí)例被中止的時(shí)間的中止參數(shù)。在一實(shí)施例中,該參數(shù)(例如,中止參數(shù))可在接收機(jī)設(shè)備處確定。在另一實(shí)施例中,該參數(shù)(例如,中止參數(shù))可在服務(wù)器處基于接收自一個(gè)或多個(gè)接收機(jī)設(shè)備的對(duì)所確定的接收機(jī)設(shè)備行為的指示來確定。所確定的參數(shù)可被用于更新與接收機(jī)設(shè)備和/或媒體實(shí)例相關(guān)聯(lián)的使用統(tǒng)計(jì),諸如指示回放被中止的平均時(shí)間的中止模式。
使用統(tǒng)計(jì)(例如,中止模式)可因媒體實(shí)例而異(諸如在特定媒體實(shí)例的回放期間發(fā)生中止的平均時(shí)間)。因媒體實(shí)例而異的使用統(tǒng)計(jì)還可反映其他中止模式細(xì)節(jié),諸如在一天中的不同時(shí)間(例如,早晨、中午和晚上)的平均中止時(shí)間、在不同地理區(qū)域或位置的平均中止時(shí)間、以及針對(duì)不同人口統(tǒng)計(jì)類別(如果知道)(例如,男性相對(duì)于女性、年齡段等)的平均中止時(shí)間。因媒體實(shí)例而異的使用統(tǒng)計(jì)還可反映在一段時(shí)間回放之后發(fā)生中止的可能性和定時(shí)。例如,觀眾可能頻繁地在前5分鐘內(nèi)中止特定媒體實(shí)例的回放但此后很少這樣做,因?yàn)橛^眾要么立即不喜歡該媒體要么看完全部?jī)?nèi)容。作為另一示例,一些媒體實(shí)例可能包括在其間許多觀眾中止回放的場(chǎng)景或片段(例如,許多觀眾覺得是無禮或無聊的場(chǎng)景或片段),而針對(duì)媒體實(shí)例的其余部分的中止模式是一致或平均的。
另外,使用統(tǒng)計(jì)(例如,中止模式)可與媒體實(shí)例類型或類別有關(guān),諸如基于對(duì)各種類型或類別的媒體實(shí)例的回放的行為跟蹤的針對(duì)不同類型或種類的媒體的中止模式。媒體類型或類別可以是對(duì)用于編群類似媒體實(shí)例的媒體實(shí)例屬性的描述。類型或類別的示例可包括“廣告”、“電影”、“新聞”、“流行歌曲”等。
此外,使用統(tǒng)計(jì)(例如,中止模式)一般可與接收機(jī)設(shè)備有關(guān),諸如指示在特定接收機(jī)設(shè)備上回放的所有媒體實(shí)例的平均中止時(shí)間的中止模式(其可反映所有者的中止模式)。另外,使用統(tǒng)計(jì)(例如,中止模式)可與接收機(jī)設(shè)備及其對(duì)類似類型或類別的媒體實(shí)例的處置有關(guān),諸如在接收機(jī)設(shè)備上回放的給定類別中的所有媒體實(shí)例的平均中止時(shí)間。
在一實(shí)施例中,高水標(biāo)余量時(shí)間值和/或低水標(biāo)余量時(shí)間值可基于使用統(tǒng)計(jì),諸如上述與媒體實(shí)例或接收機(jī)設(shè)備相關(guān)聯(lián)的中止模式。作為示例,媒體實(shí)例的高水標(biāo)余量時(shí)間值和/或低水標(biāo)余量時(shí)間值可在服務(wù)器處確定并作為媒體實(shí)例的部分元數(shù)據(jù)(例如,報(bào)頭信息)或者作為單獨(dú)傳輸?shù)囊徊糠直惶峁┙o接收機(jī)設(shè)備。作為另一示例,接收機(jī)設(shè)備的高水標(biāo)余量時(shí)間值和/或低水標(biāo)余量時(shí)間值可在接收機(jī)設(shè)備處基于對(duì)接收機(jī)設(shè)備處的媒體實(shí)例中止模式的監(jiān)視來確定。
在一實(shí)施例中,低水標(biāo)余量可基于媒體實(shí)例的經(jīng)緩沖部分的變化率來確定。在一實(shí)施例中,低水標(biāo)余量可被確定為接收機(jī)設(shè)備的高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的變化率的函數(shù)。在一實(shí)施例中,該函數(shù)可以是在接收機(jī)設(shè)備處預(yù)設(shè)的單個(gè)函數(shù)并且被用于所有媒體實(shí)例。在另一實(shí)施例中,該函數(shù)可選自用于確定低水標(biāo)余量的函數(shù)組,其中該選擇基于在媒體實(shí)例的元數(shù)據(jù)(例如,報(bào)頭)中指示的媒體實(shí)例類型或類別。
在一實(shí)施例中,無論將低水標(biāo)余量確定為高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的變化率的函數(shù)的結(jié)果如何,低水標(biāo)余量都可被約束在最小低水標(biāo)余量值與最大低水標(biāo)余量值之間。例如,最小低水標(biāo)余量值可以是256K,而最大低水標(biāo)余量值可以是4M。最小和最大低水標(biāo)余量值可由制造商或服務(wù)提供商預(yù)定,能由服務(wù)提供商(例如,經(jīng)由空中更新)或用戶(例如,響應(yīng)于用戶偏好設(shè)置)調(diào)整,或者由服務(wù)提供商、媒體提供商(例如,在作為媒體實(shí)例的一部分被遞送的參數(shù)字段內(nèi))、接收機(jī)設(shè)備(例如,響應(yīng)于所檢測(cè)到的鏈路質(zhì)量或回放狀況)、或用戶動(dòng)態(tài)地設(shè)置。
在一實(shí)施例中,高水標(biāo)余量可基于所確定的低水標(biāo)余量和回放速率來確定。在一實(shí)施例中,高水標(biāo)余量可等于低水標(biāo)余量加上回放速率的函數(shù)?;胤潘俾士杀淮_定為媒體實(shí)例的大小除以媒體實(shí)例的歷時(shí)。在一實(shí)施例中,該函數(shù)可以是在接收機(jī)設(shè)備處預(yù)設(shè)的單個(gè)函數(shù)并且被用于所有媒體實(shí)例。在另一實(shí)施例中,該函數(shù)可選自用于確定高水標(biāo)余量的函數(shù)組,其中該選擇基于在媒體實(shí)例的元數(shù)據(jù)(例如,報(bào)頭)中指示的媒體實(shí)例類型或類別。在一實(shí)施例中,高水標(biāo)余量和/或低水標(biāo)余量還可至少部分地基于中止模式系數(shù)。在一實(shí)施例中,回放速率的函數(shù)可受到最小值(諸如1M)的約束。
在一實(shí)施例中,高水標(biāo)余量和/或低水標(biāo)余量還可至少部分地基于中止模式系數(shù)。例如,一個(gè)或多個(gè)中止模式系數(shù)可以是用于確定低水標(biāo)余量和/或高水標(biāo)余量的函數(shù)的系數(shù)。如上所述,使用統(tǒng)計(jì)可在接收機(jī)設(shè)備處確定和/或接收自服務(wù)器,并且被用于確定中止模式系數(shù)。在一實(shí)施例中,中止模式系數(shù)可在服務(wù)器處確定并作為媒體實(shí)例的元數(shù)據(jù)的一部分(例如,在報(bào)頭信息內(nèi))或者作為單獨(dú)傳輸?shù)囊徊糠直惶峁┙o接收機(jī)設(shè)備。作為另一示例,中止模式系數(shù)可在接收機(jī)設(shè)備處基于接收自另一設(shè)備(例如,服務(wù)器)的使用統(tǒng)計(jì)和/或在接收機(jī)設(shè)備處確定的使用統(tǒng)計(jì)來確定。
在一實(shí)施例中,可在下載媒體實(shí)例的諸部分時(shí)(諸如在下載媒體實(shí)例的每個(gè)部分之后或者在下載媒體實(shí)例的諸部分的群之后)重新確定或修改高水標(biāo)余量和/或低水標(biāo)余量。以此方式,高水標(biāo)余量和/或低水標(biāo)余量可適應(yīng)于影響媒體實(shí)例下載的變化,諸如下載速率的變化、高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的變化率的變化等。此實(shí)施例還可使得高水標(biāo)余量和/或低水標(biāo)余量能夠在回放期間適應(yīng)于媒體實(shí)例的中止模式的變化。例如,可恰好在許多觀眾中止回放的場(chǎng)景或片段之前和期間由于很可能發(fā)生中止而減小高水標(biāo)余量以節(jié)省帶寬,并且在其他時(shí)間增大高水標(biāo)余量以增強(qiáng)回放。作為另一示例,當(dāng)中止模式反映回放進(jìn)行越久看完的觀眾就越多時(shí),可隨著回放進(jìn)行而增大高水標(biāo)余量。
在一實(shí)施例中,隨著不同的媒體實(shí)例被選擇以供在接收機(jī)設(shè)備上輸出,用于確定高速緩存的高水標(biāo)余量和/或低水標(biāo)余量的操作可跨媒體實(shí)例被使用。在一實(shí)施例中,高速緩存內(nèi)的媒體實(shí)例的已下載部分可被編群在一起以支持對(duì)媒體實(shí)例的查找。
圖1解說了適用于各個(gè)實(shí)施例的通信網(wǎng)絡(luò)系統(tǒng)100。通信網(wǎng)絡(luò)系統(tǒng)100可包括多個(gè)設(shè)備,諸如一個(gè)或多個(gè)接收機(jī)設(shè)備102、一個(gè)或多個(gè)蜂窩塔或基站104、一個(gè)或多個(gè)無線接入點(diǎn)114、一個(gè)或多個(gè)路由器109、以及連接至因特網(wǎng)110的服務(wù)器108和112。接收機(jī)設(shè)備102可經(jīng)由一個(gè)或多個(gè)蜂窩連接106(包括CDMA、TDMA、GSM、PCS、3G、4G、LTE、或任何其他類型連接)與蜂窩塔或基站104交換數(shù)據(jù)。蜂窩塔或基站104可與路由器處于通信中,該路由器可連接至因特網(wǎng)110。接收機(jī)設(shè)備102可經(jīng)由一個(gè)或多個(gè)連接118(包括或任何其他類型連接)與無線接入點(diǎn)114交換數(shù)據(jù)。無線接入點(diǎn)114可與路由器處于通信中,該路由器可連接至因特網(wǎng)110。接收機(jī)設(shè)備102可經(jīng)由一個(gè)或多個(gè)有線連接117與路由器109交換數(shù)據(jù),路由器109可連接至因特網(wǎng)110。以此方式,經(jīng)由至蜂窩塔或基站104、無線接入點(diǎn)114、路由器109和/或因特網(wǎng)110的連接,可在接收機(jī)設(shè)備102與服務(wù)器108和112之間交換數(shù)據(jù)。
在一實(shí)施例中,服務(wù)器108可以是經(jīng)由在接收機(jī)設(shè)備102的處理器上運(yùn)行的客戶端或應(yīng)用來提供媒體實(shí)例以供輸出(例如,回放)的內(nèi)容提供商服務(wù)器和/或編碼器。在一實(shí)施例中,服務(wù)器108可從媒體捕捉設(shè)備116(諸如相機(jī))接收媒體并且將該媒體編碼成配置成要由在接收機(jī)設(shè)備102的處理器上運(yùn)行的客戶端或應(yīng)用輸出(例如,回放)的媒體實(shí)例(例如,視頻、音頻、或多媒體流)。通過使用因特網(wǎng)110、路由器109、無線接入點(diǎn)114、和/或蜂窩塔或基站104建立的各種網(wǎng)絡(luò),服務(wù)器108可將媒體實(shí)例提供給接收機(jī)設(shè)備102。在一實(shí)施例中,服務(wù)器112可以是網(wǎng)絡(luò)服務(wù)器,其可監(jiān)視由接收機(jī)設(shè)備112進(jìn)行的網(wǎng)絡(luò)使用、從接收機(jī)設(shè)備102和/或服務(wù)器108接收與媒體實(shí)例和媒體實(shí)例消耗相關(guān)聯(lián)的數(shù)據(jù)(例如,中止參數(shù)、使用統(tǒng)計(jì)等)、以及向接收機(jī)設(shè)備和/或服務(wù)器108發(fā)送與媒體實(shí)例和媒體實(shí)例消耗和/或網(wǎng)絡(luò)狀況相關(guān)聯(lián)的數(shù)據(jù)。
圖2解說了適用于各個(gè)實(shí)施例的接收機(jī)設(shè)備的示例系統(tǒng)架構(gòu)200。接收機(jī)設(shè)備可包括一個(gè)或多個(gè)客戶端202,該一個(gè)或多個(gè)客戶端202可與預(yù)獲取模塊206和配置成用作接收機(jī)設(shè)備的高速緩存204的存儲(chǔ)器交換數(shù)據(jù)。預(yù)獲取模塊206可與接收機(jī)設(shè)備的高速緩存204和調(diào)制解調(diào)器接口208交換數(shù)據(jù)??蛻舳?02(諸如應(yīng)用)可響應(yīng)于媒體實(shí)例被接收機(jī)設(shè)備的用戶選擇以進(jìn)行回放(例如,用戶針對(duì)視頻或歌曲選擇“播放”或“前往”)而向預(yù)獲取模塊206發(fā)送媒體實(shí)例選擇指示,諸如統(tǒng)一資源指示符(URI)。預(yù)獲取模塊206(諸如平臺(tái)中使用的StageFright)可控制調(diào)制解調(diào)器接口208開始下載媒體實(shí)例的諸部分,并且隨著接收到媒體實(shí)例的這些部分,預(yù)獲取模塊206可將媒體實(shí)例的這些部分存儲(chǔ)在高速緩存204中。預(yù)獲取模塊206可使用任何通信協(xié)議(諸如超文本傳輸協(xié)議(HTTP)或任何其他通信協(xié)議)來下載媒體實(shí)例的諸部分并且將媒體實(shí)例的這些部分存儲(chǔ)在高速緩存204中。客戶端202可通過回放存儲(chǔ)在高速緩存204中的媒體實(shí)例的諸部分來消耗媒體實(shí)例的這些部分以在接收機(jī)設(shè)備上輸出該媒體實(shí)例。
高速緩存204中尚未被客戶端202回放的該媒體實(shí)例的諸部分可以是媒體實(shí)例的經(jīng)緩沖部分,該經(jīng)緩沖部分隨著媒體實(shí)例的新部分由預(yù)獲取模塊206下載到高速緩存204而改變,并且媒體實(shí)例的諸部分由客戶端202從高速緩存204回放。
圖3是解說媒體實(shí)例302、接收機(jī)設(shè)備的高速緩存、高水標(biāo)余量(HWM)318、和低水標(biāo)余量(LWM)320之間的實(shí)施例交互的媒體實(shí)例302的框圖。在給定時(shí)間,接收機(jī)設(shè)備的高速緩存可存儲(chǔ)媒體實(shí)例302的諸部分。高速緩存中的媒體實(shí)例302的諸部分可包括已回放部分304(例如,由客戶端或應(yīng)用通過在接收機(jī)設(shè)備上顯示視頻和/或輸出音頻所消耗的部分)以及用于回放的經(jīng)緩沖部分306(即,尚未被客戶端或應(yīng)用消耗的部分)。已回放部分304可從高速緩存的起始(SOC)310(例如,高速緩存中的媒體實(shí)例302的最老部分)延伸至最后一個(gè)存取點(diǎn)(LAP)312(例如,正被回放的媒體實(shí)例302的當(dāng)前部分)。經(jīng)緩沖部分306可從最后一個(gè)存取點(diǎn)312延伸至高速緩存末尾(EOC)314(例如,高速緩存中的媒體實(shí)例302的最新部分)。媒體實(shí)例302中尚未被下載至高速緩存的那些部分可以是未下載部分308。高速緩存可具有分配給它的最大高速緩存大小316(諸如5.0MB、20.0MB、100.0MB等),并且這可表示可存儲(chǔ)在高速緩存中的數(shù)據(jù)的最大大小。
在各個(gè)實(shí)施例中,高速緩存中的媒體實(shí)例302的諸部分的下載狀態(tài)、以及媒體分組何時(shí)被下載并存儲(chǔ)在高速緩存中可由兩個(gè)限值——低水標(biāo)余量320和高水標(biāo)余量318——來控制。
在各個(gè)實(shí)施例中,高水標(biāo)余量318可以是表示與高速緩存末尾314的大小偏移(例如,諸如字節(jié)偏移)的值,其可小于最大高速緩存大小316。以此方式,高水標(biāo)余量318可表示在高速緩存中所存儲(chǔ)的最后一個(gè)存取點(diǎn)312前方的經(jīng)緩沖部分306的最大量的目標(biāo)。當(dāng)最后一個(gè)存取點(diǎn)312與高速緩存末尾314之間的余量(例如,經(jīng)緩沖部分306的大小)達(dá)到高水標(biāo)余量318時(shí),可暫停下載媒體實(shí)例302(例如,通過停止對(duì)未下載部分308的下一部分的下載)。
在各個(gè)實(shí)施例中,低水標(biāo)余量320可以是表示與高速緩存末尾314的大小偏移(例如,諸如字節(jié)偏移)的值,其可小于高水標(biāo)余量318。以此方式,低水標(biāo)余量320可表示在最后一個(gè)存取點(diǎn)312前方的經(jīng)緩沖部分306的最小量的目標(biāo)。當(dāng)最后一個(gè)存取點(diǎn)312與高速緩存末尾314之間的余量(例如,經(jīng)緩沖部分306的大小)達(dá)到低水標(biāo)余量320時(shí),可開始(或重新開始)下載媒體實(shí)例302(例如,通過請(qǐng)求未下載部分308的下一部分)。
圖4解說了可由接收機(jī)設(shè)備的處理器(諸如由在接收機(jī)設(shè)備的處理器上運(yùn)行的預(yù)獲取模塊)執(zhí)行的用于在接收機(jī)設(shè)備上預(yù)獲取媒體的實(shí)施例方法400。在框402,處理器可接收媒體實(shí)例選擇指示。作為示例,媒體實(shí)例選擇指示可以是接收自客戶端應(yīng)用(諸如媒體播放器)的對(duì)由媒體播放器輸出的視頻的選擇的指示。媒體實(shí)例選擇指示可指示可從其檢索媒體實(shí)例的地址,諸如URL。
在框404,處理器可確定與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)。此數(shù)據(jù)可包括關(guān)于媒體實(shí)例的各種信息,包括媒體實(shí)例的大小、媒體實(shí)例的歷時(shí)、與媒體實(shí)例相關(guān)聯(lián)的中止模式、一個(gè)或多個(gè)中止模式系數(shù)、低水標(biāo)余量時(shí)間值、高水標(biāo)余量時(shí)間值、高水標(biāo)余量、低水標(biāo)余量、媒體實(shí)例類型或類別、和/或關(guān)于媒體實(shí)例的任何其他信息。在一實(shí)施例中,處理器可響應(yīng)于請(qǐng)求媒體實(shí)例而接收所請(qǐng)求的媒體實(shí)例的初始部分,并且該初始部分可包括在報(bào)頭中的與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)(例如,元數(shù)據(jù))。在一實(shí)施例中,處理器可至少部分地基于在媒體實(shí)例的初始部分中接收的數(shù)據(jù)來確定與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)。在另一實(shí)施例中,處理器可至少部分地基于存儲(chǔ)在接收機(jī)設(shè)備的存儲(chǔ)器中的數(shù)據(jù)(諸如一種或多種中止模式、一個(gè)或多個(gè)中止模式系數(shù)等)來確定與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)。在進(jìn)一步實(shí)施例中,處理器可至少部分地基于存儲(chǔ)在接收機(jī)設(shè)備的存儲(chǔ)器中的數(shù)據(jù)和在媒體實(shí)例的初始部分中接收的數(shù)據(jù)的組合來確定與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)。
在框406,處理器可基于與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)來確定接收機(jī)設(shè)備的高速緩存的高水標(biāo)余量(HWM)和低水標(biāo)余量(LWM)。在一實(shí)施例中,與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)可被用于確定媒體實(shí)例的回放速率。在一實(shí)施例中,接收機(jī)設(shè)備的高速緩存的高水標(biāo)余量可基于高水標(biāo)余量時(shí)間值和所確定的媒體實(shí)例的回放速率來確定,并且接收機(jī)設(shè)備的高速緩存的低水標(biāo)余量可基于低水標(biāo)余量時(shí)間值和所確定的媒體實(shí)例的回放速率來確定。在另一實(shí)施例中,接收機(jī)設(shè)備的高速緩存的低水標(biāo)余量可至少部分地基于接收機(jī)設(shè)備的高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的變化率來確定,并且接收機(jī)設(shè)備的高速緩存的高水標(biāo)余量可至少部分地基于低水標(biāo)余量和所確定的回放速率來確定。在進(jìn)一步實(shí)施例中,低水標(biāo)余量和高水標(biāo)余量可至少部分地基于與媒體實(shí)例或接收機(jī)設(shè)備相關(guān)聯(lián)的中止模式或中止模式系數(shù)來確定。
在框408,處理器可至少部分地基于所確定的高水標(biāo)余量和所確定的低水標(biāo)余量來控制媒體實(shí)例的諸部分至高速緩存的下載。例如,處理器可在高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小小于或等于低水標(biāo)余量時(shí)開始下載媒體實(shí)例的諸部分,可在高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小小于高水標(biāo)余量并且媒體實(shí)例的經(jīng)緩沖部分的大小小于或等于低水標(biāo)余量時(shí)繼續(xù)下載媒體實(shí)例的諸部分,并且可在媒體實(shí)例的經(jīng)緩沖部分的大小大于或等于高水標(biāo)余量時(shí)暫停下載媒體實(shí)例的諸部分。在一可任選實(shí)施例中,處理器可返回到框406以基于與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)來重新確定高速緩存的高水標(biāo)余量和低水標(biāo)余量。以此方式,高水標(biāo)余量和低水標(biāo)余量可被動(dòng)態(tài)地調(diào)整,由此使得對(duì)媒體實(shí)例的諸部分的高速緩存和下載能夠隨著各種參數(shù)值變化而被自適應(yīng)地控制。
圖5解說了用于至少部分地基于所確定的高水標(biāo)余量和所確定的低水標(biāo)余量來控制媒體實(shí)例的諸部分至高速緩存的下載的實(shí)施例方法500。在一實(shí)施例中,方法500的操作可由接收機(jī)設(shè)備的處理器(諸如由在接收機(jī)設(shè)備的處理器上運(yùn)行的預(yù)獲取模塊)執(zhí)行。
如上所述,在框402,處理器可接收媒體實(shí)例選擇指示。在判定框502,處理器可確定媒體實(shí)例是否被中止。媒體實(shí)例可按各種方式來中止,諸如通過關(guān)閉媒體觀看應(yīng)用或客戶端、接收到新的媒體實(shí)例選擇指示等。此迭代過程(其在框502開始)與并行于以上參照?qǐng)D4描述的方法400中的過程發(fā)生的回放同步發(fā)生。
響應(yīng)于確定媒體實(shí)例未被中止(即,判定框502=“否”),處理器可在框504確定并存儲(chǔ)接收機(jī)設(shè)備的高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小。接收機(jī)設(shè)備的高速緩存中的媒體實(shí)例的經(jīng)緩沖部分可以是存儲(chǔ)在高速緩存中但尚未由輸出媒體實(shí)例的客戶端或應(yīng)用回放的那些部分。處理器可通過分析接收機(jī)設(shè)備的高速緩存的內(nèi)容來確定高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小,并且可存儲(chǔ)所確定的接收機(jī)設(shè)備的高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小(例如通過覆寫先前確定的媒體實(shí)例的經(jīng)緩沖部分的大小)。
如上所述,在框406,處理器可基于與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)來確定高速緩存的高水標(biāo)余量和低水標(biāo)余量。在判定框506,處理器可確定高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小是否大于或等于高水標(biāo)余量。例如,處理器可將所確定的存儲(chǔ)在高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小的值與高水標(biāo)余量作比較以確定媒體實(shí)例的經(jīng)緩沖部分的大小是否大于或等于高水標(biāo)余量。響應(yīng)于確定高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小小于高水標(biāo)余量(即,判定框506=“否”),處理器可在判定框508確定高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小是否大于低水標(biāo)余量。例如,處理器可將所確定的存儲(chǔ)在高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小的值與低水標(biāo)余量作比較以確定媒體實(shí)例的經(jīng)緩沖部分的大小是否大于低水標(biāo)余量。
響應(yīng)于確定高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小小于或等于低水標(biāo)余量(即,判定框508=“否”),處理器可在框510恢復(fù)媒體實(shí)例至高速緩存的的下載(即,預(yù)獲取),由此下載/預(yù)獲取媒體實(shí)例的下一部分。例如,處理器可通過發(fā)送對(duì)媒體實(shí)例的下一部分的請(qǐng)求(諸如Get()請(qǐng)求)來恢復(fù)下載媒體,并且作為響應(yīng)可接收媒體實(shí)例的下一部分并將數(shù)據(jù)存儲(chǔ)在高速緩存中。一旦在框510將媒體實(shí)例的下一部分下載至高速緩存,處理器就可再次在判定框502確定媒體實(shí)例是否被中止,并且響應(yīng)于確定媒體實(shí)例未被中止(即,判定框502=“否”),處理器可在框504確定并存儲(chǔ)媒體實(shí)例的經(jīng)緩沖部分的新大小,在框406基于與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)來確定高速緩存的新的高水標(biāo)余量和低水標(biāo)余量,并且在判定框506確定媒體實(shí)例的經(jīng)緩沖部分的大小是否大于或等于高水標(biāo)余量。
響應(yīng)于確定高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小大于或等于高水標(biāo)余量(即,判定框506=“是”),可在框512暫停對(duì)媒體實(shí)例的諸部分的下載/預(yù)獲取。在后續(xù)迭代中,當(dāng)下載已停止但繼續(xù)從緩沖器進(jìn)行回放并且媒體實(shí)例的經(jīng)緩沖部分的大小小于高水標(biāo)余量(即,判定框506=“是”)但媒體實(shí)例的經(jīng)緩沖部分的大小仍大于低水標(biāo)余量(即,判定框508=“是”)時(shí),可在框512保持暫停對(duì)媒體的下載/預(yù)獲取。
接收機(jī)設(shè)備處理器在循環(huán)中執(zhí)行方法500的操作,從而只要媒體實(shí)例未被中止(即,只要判定框502=“否”),處理器就可持續(xù)地確定高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小是否高于高水標(biāo)余量或者低于低水標(biāo)余量,其中在高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小大于或等于高水標(biāo)(即,判定框506=“是”)時(shí)在框512暫停下載(即,預(yù)獲取)并且在高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小低于低水標(biāo)(即,判定框508=“否”)時(shí)恢復(fù)下載。換言之,下載和回放同時(shí)發(fā)生,其中框510和512基于高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小以及所確定的高水標(biāo)余量和低水標(biāo)余量來提供暫停和恢復(fù)機(jī)制以用于控制對(duì)媒體實(shí)例的諸部分的預(yù)獲取,直至媒體實(shí)例被完全下載或中止回放。由此,低水標(biāo)余量被用來確定何時(shí)恢復(fù)下載(即,預(yù)獲取)以便確保在高速緩存中緩沖足夠的數(shù)據(jù)以避免延后對(duì)媒體實(shí)例的回放,而高水標(biāo)余量被用來確定何時(shí)暫停下載以防止對(duì)媒體實(shí)例的過量緩沖。
響應(yīng)于確定媒體實(shí)例已被中止(即,判定框502=“是”),處理器可在框516確定中止參數(shù)。中止參數(shù)可包括自回放開始起發(fā)生中止的時(shí)間、媒體實(shí)例類型或類別、和/或與接收機(jī)設(shè)備對(duì)媒體實(shí)例的消耗和/或媒體實(shí)例自身有關(guān)的其他數(shù)據(jù)、以及本文描述的其他參數(shù)。中止參數(shù)可被接收機(jī)設(shè)備和/或遠(yuǎn)程設(shè)備(諸如遠(yuǎn)程服務(wù)器)用來生成/更新與媒體實(shí)例和/或接收機(jī)設(shè)備相關(guān)聯(lián)的使用統(tǒng)計(jì)(例如,中止模式)。在框518,處理器可發(fā)送和/或存儲(chǔ)中止參數(shù)。作為示例,處理器可將中止參數(shù)發(fā)送給遠(yuǎn)程設(shè)備,將中止參數(shù)存儲(chǔ)在接收機(jī)設(shè)備的存儲(chǔ)器中,和/或?qū)⒅兄箙?shù)發(fā)送給在接收機(jī)設(shè)備處理器上運(yùn)行的另一應(yīng)用。在可任選框520,處理器可基于中止參數(shù)來更新使用統(tǒng)計(jì)(例如,中止模式)。例如,可基于新確定的中止參數(shù)來更新自回放開始起媒體實(shí)例被中止的平均時(shí)間。
圖6解說了用于基于與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)來確定接收機(jī)設(shè)備的高速緩存的高水標(biāo)余量和低水標(biāo)余量的實(shí)施例方法600。在一實(shí)施例中,方法600的操作可由接收機(jī)設(shè)備的處理器(諸如由在接收機(jī)設(shè)備的處理器上運(yùn)行的預(yù)獲取模塊)執(zhí)行。在一實(shí)施例中,方法600的操作可結(jié)合上述方法400或500的操作來執(zhí)行。
如以上所討論的,高水標(biāo)余量時(shí)間值(hwm)和/或低水標(biāo)余量時(shí)間值(lwm)可在接收機(jī)設(shè)備處確定,或者可遠(yuǎn)離接收機(jī)設(shè)備(例如,在服務(wù)器處)確定并被提供給接收機(jī)設(shè)備。因此,在可任選實(shí)施例中,在框601a,處理器可基于中止模式來確定并存儲(chǔ)高水標(biāo)余量時(shí)間值和低水標(biāo)余量時(shí)間值。中止模式可與媒體實(shí)例或接收機(jī)設(shè)備相關(guān)聯(lián)。在可任選的替換實(shí)施例中,在框601b,處理器可接收并存儲(chǔ)高水標(biāo)余量時(shí)間值和低水標(biāo)余量時(shí)間值。例如,處理器可從遠(yuǎn)程服務(wù)器接收高水標(biāo)余量時(shí)間值和低水標(biāo)余量時(shí)間值,并且可將這些值存儲(chǔ)在接收機(jī)設(shè)備的存儲(chǔ)器中。無論是由接收機(jī)設(shè)備在框601a確定還是由接收機(jī)設(shè)備在框601b接收,低水標(biāo)余量時(shí)間值可以是設(shè)置成計(jì)及暫停由媒體播放器進(jìn)行的回放的時(shí)間(例如,2秒)并且高水標(biāo)余量時(shí)間值可以是設(shè)置成計(jì)及恢復(fù)由媒體播放器進(jìn)行的回放的時(shí)間(例如,10秒)。
在框602,處理器可確定媒體實(shí)例的回放速率。例如,回放速率可基于從媒體實(shí)例報(bào)頭中提取的媒體實(shí)例的大小(Size)和歷時(shí)(Duration)?;胤潘俾?Rplayback)隨后可根據(jù)下式來計(jì)算:
在框604,處理器可基于高水標(biāo)余量時(shí)間值和所確定的媒體實(shí)例的回放速率來確定接收機(jī)設(shè)備的高速緩存的高水標(biāo)余量。例如,使用高水標(biāo)余量時(shí)間值(hwm)的值和回放速率(Rplayback),高水標(biāo)余量(HWM)可根據(jù)下式來計(jì)算:
HWM=hwm×Rplayback
在框606,處理器可基于低水標(biāo)余量時(shí)間值和所確定的媒體實(shí)例的回放速率來確定接收機(jī)設(shè)備的高速緩存的低水標(biāo)余量。例如,使用低水標(biāo)余量時(shí)間值(lwm)的值和回放速率(Rplayback),低水標(biāo)余量(LWM)可根據(jù)下式來計(jì)算:
LWM=lwm×Rplayback
圖7解說了用于基于與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)來確定接收機(jī)設(shè)備的高速緩存的高水標(biāo)余量和低水標(biāo)余量的實(shí)施例方法700。在一實(shí)施例中,方法700的操作可由接收機(jī)設(shè)備的處理器(例如由在接收機(jī)設(shè)備的處理器上運(yùn)行的預(yù)獲取模塊)執(zhí)行。在一實(shí)施例中,方法700的操作可結(jié)合上述方法400或500的操作來執(zhí)行。
如以上參照?qǐng)D6描述的,在框602,處理器可確定媒體實(shí)例的回放速率。在框702,處理器可確定接收機(jī)設(shè)備的高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的變化率。作為示例,媒體實(shí)例的經(jīng)緩沖部分的變化率可通過將在發(fā)送當(dāng)前部分請(qǐng)求時(shí)高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的量與在發(fā)送上一個(gè)部分請(qǐng)求時(shí)高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的量作比較來確定。當(dāng)對(duì)媒體實(shí)例的諸部分的請(qǐng)求(例如,Get()請(qǐng)求)被發(fā)送時(shí),處理器可存儲(chǔ)高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的大小連同該請(qǐng)求的時(shí)間戳。以此方式,高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的變化率可通過將經(jīng)緩沖部分大小的變化除以基于不同時(shí)間戳確定的諸請(qǐng)求之間的時(shí)間間隔來確定。替換地,請(qǐng)求可按恒定周期性來發(fā)送,并且可以不需要時(shí)間戳,在此情形中可將經(jīng)緩沖部分大小的變化除以該周期性以確定媒體實(shí)例的經(jīng)緩沖部分的變化率。
在框704,處理器可至少部分地基于接收機(jī)設(shè)備的高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的變化率來確定接收機(jī)設(shè)備的高速緩存的低水標(biāo)余量。作為示例,低水標(biāo)余量(LWM)可根據(jù)下式被確定為媒體實(shí)例的經(jīng)緩沖部分的變化率的函數(shù)(f1):
在一實(shí)施例中,函數(shù)(f1)可以是存儲(chǔ)在接收機(jī)設(shè)備的存儲(chǔ)器中被用于所有媒體實(shí)例的函數(shù)。在另一實(shí)施例中,函數(shù)(f1)可以是基于媒體實(shí)例的屬性(諸如類型或類別)從存儲(chǔ)在接收機(jī)設(shè)備的存儲(chǔ)器中的函數(shù)組中選擇的函數(shù)。在一實(shí)施例中,低水標(biāo)余量的值可被約束在最小值(例如,256K)與最大值(例如,4M)之間,而不管函數(shù)(f1)的結(jié)果如何。
在框706,處理器可至少部分地基于低水標(biāo)余量和所確定的回放速率來確定接收機(jī)設(shè)備的高速緩存的高水標(biāo)余量。作為示例,高水標(biāo)余量(HWM)可根據(jù)下式被確定為低水標(biāo)余量(LWM)加上回放速率(Rplayback)的函數(shù)(f2):
HWM=LWM+f2(Rplayback)
在一實(shí)施例中,函數(shù)(f2)可以是存儲(chǔ)在接收機(jī)設(shè)備的存儲(chǔ)器中被用于所有媒體實(shí)例的函數(shù)。在另一實(shí)施例中,函數(shù)(f2)可以是基于媒體實(shí)例的屬性(諸如類型或類別)從存儲(chǔ)在接收機(jī)設(shè)備的存儲(chǔ)器中的函數(shù)組中選擇的函數(shù)。在一實(shí)施例中,f2(Rplayback)的值可被約束成至少為最小值(例如,1M)。
圖8解說了用于基于與媒體實(shí)例相關(guān)聯(lián)的數(shù)據(jù)來確定接收機(jī)設(shè)備的高速緩存的高水標(biāo)余量和低水標(biāo)余量的實(shí)施例方法。在一實(shí)施例中,方法700的操作可由接收機(jī)設(shè)備的處理器(諸如由在接收機(jī)設(shè)備的處理器上運(yùn)行的預(yù)獲取模塊)執(zhí)行。在一實(shí)施例中,方法700的操作可結(jié)合上述方法400或500的操作來執(zhí)行。
如以上所討論的,中止模式系數(shù)可由接收機(jī)設(shè)備確定,或者可由遠(yuǎn)離接收機(jī)設(shè)備的計(jì)算機(jī)(例如,由服務(wù)器)確定并被提供給接收機(jī)設(shè)備。因此,在可任選實(shí)施例中,在框801a,處理器可基于對(duì)接收機(jī)設(shè)備可用的使用統(tǒng)計(jì)來確定并存儲(chǔ)一個(gè)或多個(gè)中止模式系數(shù)。中止模式可與媒體實(shí)例或接收機(jī)設(shè)備相關(guān)聯(lián)。在可任選的替換實(shí)施例中,在框801b,處理器可接收并存儲(chǔ)一個(gè)或多個(gè)中止模式系數(shù)。例如,處理器可從遠(yuǎn)程服務(wù)器接收一個(gè)或多個(gè)中止模式系數(shù),并且可將這些系數(shù)存儲(chǔ)在接收機(jī)設(shè)備的存儲(chǔ)器中。
如上所述,在框602,處理器可確定媒體實(shí)例的回放速率,并且在框702,處理器可確定媒體實(shí)例的經(jīng)緩沖部分的變化率。在框802,處理器可至少部分地基于接收機(jī)設(shè)備的高速緩存中的媒體實(shí)例的經(jīng)緩沖部分的變化率以及(諸)中止模式系數(shù)來確定接收機(jī)設(shè)備的高速緩存的低水標(biāo)余量。例如,一個(gè)或多個(gè)中止系數(shù)可以是以上參照?qǐng)D7的框704討論的函數(shù)f1的系數(shù)。以此方式,所確定的低水標(biāo)余量可基于中止模式系數(shù)而變化。
在框804,處理器可至少部分地基于(諸)中止模式系數(shù)、低水標(biāo)余量和所確定的回放速率來確定接收機(jī)設(shè)備的高速緩存的高水標(biāo)余量。例如,一個(gè)或多個(gè)中止系數(shù)可以是以上參照?qǐng)D7的框704和706討論的函數(shù)f1或函數(shù)f2的系數(shù)。以此方式,所確定的高水標(biāo)余量可基于中止模式系數(shù)而變化。
圖9解說了用于基于使用統(tǒng)計(jì)來生成中止模式系數(shù)和/或高水標(biāo)余量和低水標(biāo)余量時(shí)間值的實(shí)施例方法。在一實(shí)施例中,方法900的操作可由遠(yuǎn)離接收機(jī)設(shè)備的服務(wù)器(諸如網(wǎng)絡(luò)服務(wù)器或內(nèi)容提供商服務(wù)器)執(zhí)行。在一實(shí)施例中,方法900的操作可結(jié)合上述方法400、500、600和/或800的操作來執(zhí)行。
在框902,服務(wù)器可接收和/或確定中止參數(shù)。在一實(shí)施例中,服務(wù)器可從輸出特定媒體實(shí)例的數(shù)個(gè)接收機(jī)設(shè)備接收中止參數(shù)。在另一實(shí)施例中,服務(wù)器可通過監(jiān)視由數(shù)個(gè)接收機(jī)設(shè)備對(duì)媒體實(shí)例的諸部分的下載(諸如以確定接收機(jī)設(shè)備請(qǐng)求的最后部分)來確定中止參數(shù)。以此方式,服務(wù)器可標(biāo)識(shí)媒體實(shí)例何時(shí)在接收機(jī)設(shè)備上被中止。在框904,處理器可基于所接收/確定的中止參數(shù)來更新使用統(tǒng)計(jì)(例如,中止模式)。例如,服務(wù)器可跟蹤具體媒體實(shí)例和/或媒體實(shí)例類型或類別的平均中止時(shí)間。當(dāng)接收到新的中止參數(shù)時(shí),可基于不斷增長(zhǎng)的中止參數(shù)數(shù)據(jù)集來更新使用統(tǒng)計(jì)。
在框906,服務(wù)器可基于使用統(tǒng)計(jì)來生成中止模式系數(shù)、和/或高水標(biāo)余量時(shí)間值和低水標(biāo)余量時(shí)間值。在框908,服務(wù)器可將中止模式系數(shù)、和/或高水標(biāo)余量時(shí)間值和低水標(biāo)余量時(shí)間值發(fā)送給接收機(jī)設(shè)備。在一實(shí)施例中,中止模式系數(shù)、和/或高水標(biāo)余量時(shí)間值和低水標(biāo)余量時(shí)間值可獨(dú)立于對(duì)媒體實(shí)例的請(qǐng)求(諸如在媒體服務(wù)的開銷信令信息中)被發(fā)送給接收機(jī)設(shè)備。在另一實(shí)施例中,中止模式系數(shù)、和/或高水標(biāo)余量時(shí)間值和低水標(biāo)余量時(shí)間值可被包括在媒體實(shí)例的元數(shù)據(jù)中(例如,在報(bào)頭信息內(nèi))并且與媒體實(shí)例一起被提供給接收機(jī)設(shè)備。
各個(gè)實(shí)施例可在各種接收機(jī)設(shè)備中的任一種中實(shí)現(xiàn),其中的一個(gè)示例在圖10中解說。例如,接收機(jī)設(shè)備1000可包括耦合至內(nèi)部存儲(chǔ)器1004和1006的處理器1002,內(nèi)部存儲(chǔ)器1004和1006中的一者或多者可被配置成用作緩沖器以用于存儲(chǔ)如所描述地預(yù)獲取的媒體實(shí)例的諸部分。內(nèi)部存儲(chǔ)器1004和1006可以是易失性或非易失性存儲(chǔ)器,并且還可以是安全和/或加密的存儲(chǔ)器、或者不安全和/或未加密存儲(chǔ)器,或其任何組合。處理器1002還可被耦合至觸摸屏顯示器1012,諸如電阻式傳感觸摸屏、電容式傳感觸摸屏、紅外傳感觸摸屏等。另外,接收機(jī)設(shè)備1000的顯示器不需要具有觸摸屏能力。接收機(jī)設(shè)備1000可具有耦合至處理器1002的用于發(fā)送和接收的一個(gè)或多個(gè)無線電信號(hào)收發(fā)機(jī)1008(例如,Wi-Fi、RF無線電)以及天線1010。接收機(jī)設(shè)備1000可包括啟用經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)(例如,CDMA、TDMA、GSM、PCS、3G、4G、LTE、或任何其他類型的數(shù)據(jù)網(wǎng)絡(luò))的通信且耦合至處理器1002的網(wǎng)絡(luò)接口1016(諸如無線調(diào)制解調(diào)器芯片)。網(wǎng)絡(luò)接口1016可被配置成接收如所描述地預(yù)獲取的媒體實(shí)例的已下載部分。接收機(jī)設(shè)備1000可包括耦合至處理器1002的外圍設(shè)備連接接口1018。外圍設(shè)備連接接口1018可被獨(dú)特地配置成接納一種類型的連接,或者被多樣化地配置成接納共用或?qū)S械母鞣N類型的物理和通信連接,諸如USB、火線(FireWire)、雷電(Thunderbolt)、PCIe等。外圍設(shè)備連接接口1018還可耦合至類似地配置的外圍設(shè)備連接端口,并且外圍設(shè)備連接接口1018可作為網(wǎng)絡(luò)接口來操作以將接收機(jī)設(shè)備1000和處理器1002連接至各種網(wǎng)絡(luò)。在一些實(shí)施例中,外圍設(shè)備連接接口1018可被配置成接收如所描述地預(yù)獲取的媒體實(shí)例的已下載部分。接收機(jī)設(shè)備1000還可包括用于提供音頻輸出的揚(yáng)聲器1014和用于接收音頻輸入的話筒1015。接收機(jī)設(shè)備1000還可包括用于容納本文所討論的組件中的全部或一些組件的外殼1020,外殼1020由塑料、金屬、或多種材料的組合構(gòu)成。接收機(jī)設(shè)備1000可以包括耦合至處理器1002的電源1022,諸如一次性或可充電電池??沙潆婋姵剡€可耦合至外圍設(shè)備連接端口以從接收機(jī)設(shè)備1000外部的源接收充電電流。
各個(gè)實(shí)施例還可實(shí)現(xiàn)在各種市售的服務(wù)器設(shè)備中的任何服務(wù)器設(shè)備上,諸如圖11中解說的服務(wù)器1100。此類服務(wù)器1100典型地包括耦合至易失性存儲(chǔ)器1102和大容量非易失性存儲(chǔ)器(諸如盤驅(qū)動(dòng)器1103)的處理器1101。服務(wù)器1100還可包括耦合至處理器1101的軟盤驅(qū)動(dòng)器、壓縮碟(CD)或DVD碟驅(qū)動(dòng)器1106。服務(wù)器1100還可包括耦合至處理器1101的用于建立與網(wǎng)絡(luò)1107(諸如耦合至其他廣播系統(tǒng)計(jì)算機(jī)和服務(wù)器的局域網(wǎng)、因特網(wǎng)、公共交換電話網(wǎng)絡(luò)、和/或蜂窩數(shù)據(jù)網(wǎng)絡(luò)(例如,CDMA、TDMA、GSM、PCS、3G、4G、LTE、或任何其他類型的蜂窩數(shù)據(jù)網(wǎng)絡(luò))的網(wǎng)絡(luò)接口連接的網(wǎng)絡(luò)接入端口1104。
處理器1002和1101可以是能通過軟件指令(應(yīng)用)配置成執(zhí)行包括以上描述的各種實(shí)施例的功能在內(nèi)的各種功能的任何可編程微處理器、微型計(jì)算機(jī)或一個(gè)或多個(gè)多處理器芯片。在一些設(shè)備中,可提供多個(gè)處理器,諸如一個(gè)處理器專用于無線通信功能并且一個(gè)處理器專用于運(yùn)行其他應(yīng)用。通常,軟件應(yīng)用在被訪問并被加載到處理器1002和1101中之前可被存儲(chǔ)在內(nèi)部存儲(chǔ)器1004、1006、1102和1103中。處理器1002和1101可包括足以存儲(chǔ)應(yīng)用軟件指令的內(nèi)部存儲(chǔ)器。在許多設(shè)備中,內(nèi)部存儲(chǔ)器可以是易失性或非易失性存儲(chǔ)器(諸如閃存),或這兩者的混合。出于本說明書的目的,對(duì)存儲(chǔ)器的一般性引述是指可由處理器1002和1101訪問的存儲(chǔ)器,包括內(nèi)部存儲(chǔ)器或插入到該設(shè)備中的可移動(dòng)存儲(chǔ)器、以及在處理器1002和1101本身內(nèi)部的存儲(chǔ)器。
上述方法描述和過程流圖僅作為解說性示例提供,且并非旨在要求或暗示各個(gè)實(shí)施例的步驟必須按所給出的次序來執(zhí)行。如本領(lǐng)域技術(shù)人員將領(lǐng)會(huì)的,前述實(shí)施例中的步驟次序可按任何次序來執(zhí)行。諸如“此后”、“然后”、“接著”等的措辭并非旨在限定步驟的次序;這些措辭僅是簡(jiǎn)單地用以指引讀者遍歷方法的描述。進(jìn)一步,對(duì)單數(shù)形式的權(quán)利要求元素的任何引述,例如使用冠詞“一”、“某”或“該”的引述不應(yīng)解釋為將該元素限定為單數(shù)。
結(jié)合本文中所公開的實(shí)施例來描述的各種解說性邏輯框、模塊、電路、和算法步驟可實(shí)現(xiàn)為電子硬件、計(jì)算機(jī)軟件、或這兩者的組合。為清楚地解說硬件與軟件的這一可互換性,各種解說性組件、塊、模塊、電路、以及步驟在上面是以其功能性的形式作一般化描述的。此類功能性是被實(shí)現(xiàn)為硬件還是軟件取決于具體應(yīng)用和施加于整體系統(tǒng)的設(shè)計(jì)約束。技術(shù)人員對(duì)于每種特定應(yīng)用可用不同的方式來實(shí)現(xiàn)所描述的功能性,但此類實(shí)現(xiàn)決策不應(yīng)被解讀成導(dǎo)致脫離了本發(fā)明的范圍。
用于實(shí)現(xiàn)結(jié)合本文中公開的方面描述的各種解說性邏輯、邏輯框、模塊、以及電路的硬件可利用設(shè)計(jì)成執(zhí)行本文中描述的功能的通用處理器、數(shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)或其他可編程邏輯器件、分立的門或晶體管邏輯、分立的硬件組件、或其任何組合來實(shí)現(xiàn)或執(zhí)行。通用處理器可以是微處理器,但在替換方案中,處理器可以是任何常規(guī)的處理器、控制器、微控制器、或狀態(tài)機(jī)。處理器還可以被實(shí)現(xiàn)為計(jì)算設(shè)備的組合,例如DSP與微處理器的組合、多個(gè)微處理器、與DSP核心協(xié)同的一個(gè)或多個(gè)微處理器、或任何其它此類配置。替換地,一些步驟或方法可由專用于給定功能的電路系統(tǒng)來執(zhí)行。
在一個(gè)或多個(gè)示例性方面,所描述的功能可在硬件、軟件、固件或其任何組合中實(shí)現(xiàn)。如果在軟件中實(shí)現(xiàn),則這些功能可作為一條或多條指令或代碼存儲(chǔ)在非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)或非瞬態(tài)處理器可讀介質(zhì)上。本文中公開的方法或算法的步驟可在處理器可執(zhí)行軟件模塊中實(shí)施,該處理器可執(zhí)行軟件模塊可駐留在非瞬態(tài)計(jì)算機(jī)可讀或處理器可讀存儲(chǔ)介質(zhì)上。非瞬態(tài)計(jì)算機(jī)可讀或處理器可讀存儲(chǔ)介質(zhì)可以是能被計(jì)算機(jī)或處理器訪問的任何存儲(chǔ)介質(zhì)。作為示例而非限定,此類非瞬態(tài)計(jì)算機(jī)可讀或處理器可讀介質(zhì)可包括RAM、ROM、EEPROM、閃存、CD-ROM或其他光盤存儲(chǔ)、磁盤存儲(chǔ)或其他磁存儲(chǔ)設(shè)備、或能被用來存儲(chǔ)指令或數(shù)據(jù)結(jié)構(gòu)形式的期望程序代碼且能被計(jì)算機(jī)訪問的任何其他介質(zhì)。如本文中所使用的盤(disk)和碟(disc)包括壓縮碟(CD)、激光碟、光碟、數(shù)字通用碟(DVD)、軟盤和藍(lán)光碟,其中盤(disk)往往以磁的方式再現(xiàn)數(shù)據(jù)而碟(disc)用激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。以上的組合也被包括在非瞬態(tài)計(jì)算機(jī)可讀和處理器可讀介質(zhì)的范圍內(nèi)。另外,方法或算法的操作可作為一條代碼和/或指令或者任何代碼和/或指令組合或集合而駐留在可被納入計(jì)算機(jī)程序產(chǎn)品中的非瞬態(tài)處理器可讀介質(zhì)和/或計(jì)算機(jī)可讀介質(zhì)上。
提供所公開的實(shí)施例的先前描述是為了使本領(lǐng)域任何技術(shù)人員皆能制作或使用本發(fā)明。對(duì)這些實(shí)施例的各種修改對(duì)本領(lǐng)域技術(shù)人員來說將是顯而易見的,且本文所定義的一般原理可被應(yīng)用于其它實(shí)施例而不背離本發(fā)明的精神或范圍。由此,本發(fā)明并非旨在限定于本文中示出的實(shí)施例,而是應(yīng)被授予與所附權(quán)利要求和本文中公開的原理和新穎性特征一致的最廣義的范圍。