亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

根據(jù)畫面調(diào)整字幕的方法及系統(tǒng)與流程

文檔序號:12628856閱讀:587來源:國知局
根據(jù)畫面調(diào)整字幕的方法及系統(tǒng)與流程

本申請涉及視頻字幕播放技術(shù)領(lǐng)域,具體地說,涉及一種根據(jù)畫面調(diào)整字幕的方法及系統(tǒng)。



背景技術(shù):

在視頻播放過程中,字幕作為一種便于用戶在視頻語音之外接收視頻內(nèi)容信息的形式,方便用戶觀看視頻。目前的很多Mac下的播放器,其字幕都是通過人工控制合成到視頻幀畫面中的,在視頻畫面進行縮放時,字幕的字體也跟隨畫面進行縮放,如果畫面縮得過小,字幕也會跟著縮得過小,且有的字幕合成到畫面中后也不能自動換行,不利于根據(jù)畫面縮放的需要調(diào)整字幕,影響用戶觀看效果。而且現(xiàn)有的Mac下的XCode控件CATextlayer不能進行字幕進行底端對齊,利用這個控件實現(xiàn)的字幕顯示也會有無法底端對齊的問題。

現(xiàn)有技術(shù)中,在畫面縮放的過程中,字幕不能跟隨視頻畫面內(nèi)容進行適應(yīng)性變化,只會根據(jù)比例進行變化,當(dāng)視頻過大或過小時,字幕也會過大或過小,用戶體驗效果極差。如果mac下播放器是使用XCode下的CATextlayer實現(xiàn)的,則字幕無法底端對齊,采用的是頂端對齊,這樣字幕行數(shù)變化時就會感覺視覺有混亂,不符合正常的字幕習(xí)慣,同樣給用戶帶來了不良的視覺效果。



技術(shù)實現(xiàn)要素:

有鑒于此,本申請所要解決的技術(shù)問題是提供了一種根據(jù)畫面調(diào)整字幕方法及系統(tǒng),能夠根據(jù)視頻畫面寬度適應(yīng)性調(diào)整字幕大小,而不會使得字幕隨視頻的縮放變得過大或過小,從而使得字幕滿足用戶觀看需求,提升了用戶體驗。

為了解決上述技術(shù)問題,本申請有如下技術(shù)方案:

一種根據(jù)畫面調(diào)整字幕的方法,包括:

設(shè)置視頻畫面中的字幕顯示參數(shù),所述字幕顯示參數(shù)至少包括:字幕顯示區(qū)域上每行顯示的最大字符數(shù)、最小顯示字號、最大顯示字號、字幕顯示區(qū)域距視頻畫面左端的距離d1、字幕顯示區(qū)域距視頻畫面右端的距離d2、以及字幕顯示區(qū)域距視頻畫面底端的距離d3;

實時獲取視頻畫面的寬度d0,根據(jù)所述視頻畫面的寬度d0、所述字幕顯示區(qū)域距視頻畫面左端的距離d1、以及所述字幕顯示區(qū)域距視頻畫面右端的距離d2,計算字幕顯示區(qū)域的寬度d4,d4=d0-d1-d2;

根據(jù)所述字幕顯示區(qū)域的寬度、所述每行顯示的最大字符數(shù)、所述最小顯示字號和所述最大顯示字號,計算所述字幕顯示區(qū)域所能容納的最大字號;

根據(jù)所述字幕顯示區(qū)域所能容納的最大字號以及當(dāng)前字幕顯示區(qū)域的寬度,計算當(dāng)前字幕內(nèi)容所需顯示的行數(shù);

根據(jù)所述字幕顯示區(qū)域所能容納的最大字號、所述當(dāng)前字幕內(nèi)容所需顯示的行數(shù)、以及所述字幕顯示區(qū)域距視頻畫面底端的距離,計算每行字幕的顯示位置,使得靠近所述視頻畫面底端的第一行字幕底部與所述視頻畫面底端之間的距離保持為d3;

根據(jù)所述字幕顯示區(qū)域所能容納的最大字號、所述當(dāng)前字幕內(nèi)容所需顯示的行數(shù)、以及所述每行字幕的顯示位置,將字幕內(nèi)容顯示到所述字幕顯示區(qū)域。

優(yōu)選地,其中:

計算所述字幕顯示區(qū)域所能容納的最大字號,進一步為:

將字號設(shè)置為所述最小顯示字號,利用ObjectC中屬性字符串類提供的函數(shù),計算當(dāng)前字號下每個字符的寬度;

根據(jù)所述字幕顯示區(qū)域的寬度和所述每個字符的寬度,計算所述字幕顯示區(qū)域的寬度范圍所能容納的字符數(shù);

判斷所述字符數(shù)是否超過所述每行顯示的最大字符數(shù),若超過,則將字號加1,再計算對應(yīng)的字符的寬度和所述字幕顯示區(qū)域的寬度所能容納的字符數(shù),直至當(dāng)前字號在當(dāng)前字幕顯示區(qū)域的寬度下每行顯示的字符數(shù)小于等于所述最大字符數(shù)或當(dāng)前字號達到所述最大顯示字號,此時得到的字號為滿足字號范圍和所述每行顯示的最大字符數(shù)下所述字幕顯示區(qū)域所能容納的最大字號。

優(yōu)選地,其中:

計算當(dāng)前字幕內(nèi)容所需顯示的行數(shù),進一步為:

根據(jù)當(dāng)前字號的大小,計算當(dāng)前字號下,當(dāng)前字幕內(nèi)容的總寬度;

用計算出的所述字幕內(nèi)容的總寬度除以所述字幕顯示區(qū)域的寬度,得出當(dāng)前字幕內(nèi)容所需顯示的行數(shù)。

優(yōu)選地,其中:

計算每行字幕的顯示位置,進一步為:

根據(jù)當(dāng)前字號的大小,計算當(dāng)前字號下,每行字幕的高度d5;

從視頻畫面底部開始從下至上數(shù)第1行字幕的底端距離所述視頻畫面底端的距離為所述字幕顯示區(qū)域距視頻畫面底端的距離d3,第n行字幕的頂端距離所述視頻畫面底端的距離為d3+n*d5。

優(yōu)選地,其中:

進一步包括:

將所述每行顯示的最大字符數(shù)設(shè)置為40,將所述最小顯示字號設(shè)置為22,將所述最大顯示字號設(shè)置為50,將所述字幕顯示區(qū)域距視頻畫面左端的距離d1設(shè)置為100個像素,將所述字幕顯示區(qū)域距視頻畫面右端的距離d2設(shè)置為100個像素、將所述字幕顯示區(qū)域距視頻畫面底端的距離d3設(shè)置為40個像素。

一種根據(jù)畫面調(diào)整字幕的系統(tǒng),其特征在于,包括:參數(shù)設(shè)置模塊、字幕顯示區(qū)域?qū)挾扔嬎隳K、字幕顯示區(qū)域字號計算模塊、字幕顯示區(qū)域行數(shù)計算模塊、字幕顯示位置計算模塊和字幕載入模塊,

所述參數(shù)設(shè)置模塊,用于設(shè)置視頻畫面中的字幕顯示參數(shù),所述字幕顯示參數(shù)至少包括:字幕顯示區(qū)域上每行顯示的最大字符數(shù)、最小顯示字號、最大顯示字號、字幕顯示區(qū)域距視頻畫面左端的距離d1、字幕顯示區(qū)域距視頻畫面右端的距離d2、以及字幕顯示區(qū)域距視頻畫面底端的距離d3;

所述字幕顯示區(qū)域?qū)挾扔嬎隳K,用于實時獲取視頻畫面的寬度d0,根據(jù)所述視頻畫面的寬度d0、所述字幕顯示區(qū)域距視頻畫面左端的距離d1、以及所述字幕顯示區(qū)域距視頻畫面右端的距離d2,計算字幕顯示區(qū)域的寬度d4,d4=d0-d1-d2;

所述字幕顯示區(qū)域字號計算模塊,用于根據(jù)所述字幕顯示區(qū)域的寬度、所述每行顯示的最大字符數(shù)、所述最小顯示字號和所述最大顯示字號,計算所述字幕顯示區(qū)域所能容納的最大字號;

所述字幕顯示區(qū)域行數(shù)計算模塊,用于根據(jù)所述字幕顯示區(qū)域所能容納的最大字號以及當(dāng)前字幕顯示區(qū)域的寬度,計算當(dāng)前字幕內(nèi)容所需顯示的行數(shù);

所述字幕顯示位置計算模塊,用于根據(jù)所述字幕顯示區(qū)域所能容納的最大字號、所述當(dāng)前字幕內(nèi)容所需顯示的行數(shù)、以及所述字幕顯示區(qū)域距視頻畫面底端的距離,計算每行字幕的顯示位置,使得靠近所述視頻畫面底端的第一行字幕底部與所述視頻畫面底端之間的距離保持為d3;

所述字幕載入模塊,用于根據(jù)所述字幕顯示區(qū)域所能容納的最大字號、所述當(dāng)前字幕內(nèi)容所需顯示的行數(shù)、以及所述每行字幕的顯示位置,將字幕內(nèi)容顯示到所述字幕顯示區(qū)域。

優(yōu)選地,其中:

所述字幕顯示區(qū)域字號計算模塊,進一步用于:

將字號設(shè)置為所述最小顯示字號,利用ObjectC中屬性字符串類提供的函數(shù),計算當(dāng)前字號下每個字符的寬度;

根據(jù)所述字幕顯示區(qū)域的寬度和所述每個字符的寬度,計算所述字幕顯示區(qū)域的寬度范圍所能容納的字符數(shù);

判斷所述字符數(shù)是否超過所述每行顯示的最大字符數(shù),若超過,則將字號加1,再計算對應(yīng)的字符的寬度和所述字幕顯示區(qū)域的寬度所能容納的字符數(shù),直至當(dāng)前字號在當(dāng)前字幕顯示區(qū)域的寬度下每行顯示的字符數(shù)小于等于所述最大字符數(shù)或當(dāng)前字號達到所述最大顯示字號,此時得到的字號為滿足字號范圍和所述每行顯示的最大字符數(shù)下所述字幕顯示區(qū)域所能容納的最大字號。

優(yōu)選地,其中:

所述字幕顯示區(qū)域行數(shù)計算模塊,進一步用于:

根據(jù)當(dāng)前字號的大小,計算當(dāng)前字號下,當(dāng)前字幕內(nèi)容的總寬度;

用計算出的所述字幕內(nèi)容的總寬度除以所述字幕顯示區(qū)域的寬度,得出當(dāng)前字幕內(nèi)容所需顯示的行數(shù)。

優(yōu)選地,其中:

所述字幕顯示位置計算模塊,進一步用于:

根據(jù)當(dāng)前字號的大小,計算當(dāng)前字號下,每行字幕的高度d5;

從視頻畫面底部開始從下至上數(shù)第1行字幕的底端距離所述視頻畫面底端的距離為所述字幕顯示區(qū)域距視頻畫面底端的距離d3,第n行字幕的頂端距離所述視頻畫面底端的距離為d3+n*d5。

優(yōu)選地,其中:

所述每行顯示的最大字符數(shù)為40,所述最小顯示字號為22,所述最大顯示字號為50,所述字幕顯示區(qū)域距視頻畫面左端的距離d1=100個像素,所述字幕顯示區(qū)域距視頻畫面右端的距離d2=100個像素、所述字幕顯示區(qū)域距視頻畫面底端的距離d3=40個像素。

與現(xiàn)有技術(shù)相比,本申請所述的方法及系統(tǒng),達到了如下效果:

第一,本發(fā)明所提供的根據(jù)畫面調(diào)整字幕的方法及系統(tǒng),能夠?qū)崟r獲取視頻畫面的寬度,并能根據(jù)視頻畫面的寬度實時調(diào)整字幕的字號和顯示的行數(shù),使得無論視頻畫面如何變化,字幕的字號始終處于最小顯示字號和最大顯示字號的范圍內(nèi),避免了字幕隨著畫面的拉伸而變得過大或過小,使得字幕的大小隨視頻畫面的變化始終處于較佳的字號范圍內(nèi),滿足用戶的觀看需求的同時有效提升了用戶的體驗效果。

第二,本發(fā)明所提供的根據(jù)畫面調(diào)整字幕的方法及系統(tǒng),能夠?qū)ψ帜伙@示區(qū)域的位置進行設(shè)定,使得字幕顯示時位置不會超過一定的范圍,而且還能夠使得無論顯示幾行字幕時,始終能夠?qū)崿F(xiàn)底部對齊,避免了顯示行數(shù)有多行時,字幕顯示無規(guī)則且混亂的現(xiàn)象,給用戶帶來良好的視覺體驗效果。

附圖說明

此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:

圖1為本發(fā)明的所述一種根據(jù)畫面調(diào)整字幕的方法的流程圖;

圖2為本發(fā)明的所述一種根據(jù)畫面調(diào)整字幕的系統(tǒng)的結(jié)構(gòu)圖;

圖3為本發(fā)明的所述一種根據(jù)畫面調(diào)整字幕的方法的實施例的流程圖。

具體實施方式

如在說明書及權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定組件。本領(lǐng)域技術(shù)人員應(yīng)可理解,硬件制造商可能會用不同名詞來稱呼同一個組件。本說明書及權(quán)利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準(zhǔn)則。如在通篇說明書及權(quán)利要求當(dāng)中所提及的“包含”為一開放式用語,故應(yīng)解釋成“包含但不限定于”?!按笾隆笔侵冈诳山邮盏恼`差范圍內(nèi),本領(lǐng)域技術(shù)人員能夠在一定誤差范圍內(nèi)解決所述技術(shù)問題,基本達到所述技術(shù)效果。此外,“耦接”一詞在此包含任何直接及間接的電性耦接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表所述第一裝置可直接電性耦接于所述第二裝置,或通過其他裝置或耦接手段間接地電性耦接至所述第二裝置。說明書后續(xù)描述為實施本申請的較佳實施方式,然所述描述乃以說明本申請的一般原則為目的,并非用以限定本申請的范圍。本申請的保護范圍當(dāng)視所附權(quán)利要求所界定者為準(zhǔn)。

實施例1

參見圖1所示為本申請所述一種根據(jù)畫面調(diào)整字幕的方法的具體實施例,該方法包括:

步驟101、設(shè)置視頻畫面中的字幕顯示參數(shù),所述字幕顯示參數(shù)至少包括:字幕顯示區(qū)域上每行顯示的最大字符數(shù)、最小顯示字號、最大顯示字號、字幕顯示區(qū)域距視頻畫面左端的距離d1、字幕顯示區(qū)域距視頻畫面右端的距離d2、以及字幕顯示區(qū)域距視頻畫面底端的距離d3;

步驟102、實時獲取視頻畫面的寬度d0,根據(jù)所述視頻畫面的寬度d0、所述字幕顯示區(qū)域距視頻畫面左端的距離d1、以及所述字幕顯示區(qū)域距視頻畫面右端的距離d2,計算字幕顯示區(qū)域的寬度d4,d4=d0-d1-d2;

步驟103、根據(jù)所述字幕顯示區(qū)域的寬度、所述每行顯示的最大字符數(shù)、所述最小顯示字號和所述最大顯示字號,計算所述字幕顯示區(qū)域所能容納的最大字號;

步驟104、根據(jù)所述字幕顯示區(qū)域所能容納的最大字號以及當(dāng)前字幕顯示區(qū)域的寬度,計算當(dāng)前字幕內(nèi)容所需顯示的行數(shù);

步驟105、根據(jù)所述字幕顯示區(qū)域所能容納的最大字號、所述當(dāng)前字幕內(nèi)容所需顯示的行數(shù)、以及所述字幕顯示區(qū)域距視頻畫面底端的距離,計算每行字幕的顯示位置,使得靠近所述視頻畫面底端的第一行字幕底部與所述視頻畫面底端之間的距離保持為d3;

步驟106、根據(jù)所述字幕顯示區(qū)域所能容納的最大字號、所述當(dāng)前字幕內(nèi)容所需顯示的行數(shù)、以及所述每行字幕的顯示位置,將字幕內(nèi)容顯示到所述字幕顯示區(qū)域。

通過上述步驟101,設(shè)置字幕顯示區(qū)域上每行字幕中能夠顯示的最大字符數(shù),使得每行顯示的字符數(shù)不大于該最大字符數(shù)。通過設(shè)置最小顯示字號和最大顯示字號,將字幕中文字的大小設(shè)置在該區(qū)間范圍內(nèi),即使視頻畫面被拉伸或縮小,字幕中文字的大小也會始終保持在此范圍內(nèi),不會隨視頻畫面變得過大或過小,給觀眾良好的視覺體驗效果。通過設(shè)置字幕顯示區(qū)域距視頻畫面左端的距離d1、字幕顯示區(qū)域距視頻畫面右端的距離d2、以及靠近視頻畫面底端的第一行字幕底部距視頻畫面底端的距離d3,將字幕顯示區(qū)域控制在這些參數(shù)所限定的位置范圍內(nèi),滿足用戶觀看需求的同時提升用戶體驗效果。

上述步驟103中,計算所述字幕顯示區(qū)域所能容納的最大字號,進一步為:

將字號設(shè)置為所述最小顯示字號,利用ObjectC中屬性字符串類提供的函數(shù)計算當(dāng)前字號下每個字符的寬度;

根據(jù)所述字幕顯示區(qū)域的寬度和所述每個字符的寬度,計算所述字幕顯示區(qū)域的寬度范圍所能容納的字符數(shù),即用字幕顯示區(qū)域的寬度除以每個字符的寬度,再取整即可得到字幕顯示區(qū)域的寬度范圍所能容納的字符數(shù);

判斷所述字符數(shù)是否超過所述每行顯示的最大字符數(shù),若超過,則將字號加1,再計算對應(yīng)的字符的寬度和所述字幕顯示區(qū)域的寬度所能容納的字符數(shù),直至當(dāng)前字號在當(dāng)前字幕顯示區(qū)域的寬度下每行顯示的字符數(shù)小于等于所述最大字符數(shù)或當(dāng)前字號達到所述最大顯示字號,此時得到的字號為滿足字號范圍和所述每行顯示的最大字符數(shù)下所述字幕顯示區(qū)域所能容納的最大字號。

通過上述方法,獲得到了同時滿足字號范圍以及不超過每行顯示的最大字符數(shù)這兩個條件下的最大字號,并不會因為視頻畫面寬度過大或過小而造成字號過大或過小以致影響觀看。

上述步驟104中,計算當(dāng)前字幕內(nèi)容所需顯示的行數(shù),進一步為:

根據(jù)當(dāng)前字號的大小,計算當(dāng)前字號下,當(dāng)前字幕內(nèi)容的總寬度,其中,當(dāng)前字幕內(nèi)容的總寬度為當(dāng)前字號下各個字符的寬度之和;

用計算出的所述字幕內(nèi)容的總寬度除以所述字幕顯示區(qū)域的寬度,得出當(dāng)前字幕內(nèi)容所需顯示的行數(shù)。例如,若計算出的字幕內(nèi)容的總寬度為45,字幕顯示區(qū)域的寬度為30,用45除以30的結(jié)果為1.5,則代表當(dāng)前字幕內(nèi)容所需顯示的行數(shù)為2行。

上述步驟105中,計算每行字幕的顯示位置,進一步為:

根據(jù)當(dāng)前字號的大小,計算當(dāng)前字號下,每行字幕的高度d5;

從視頻畫面底部開始從下至上數(shù)第1行字幕的底端距離所述視頻畫面底端的距離為所述字幕顯示區(qū)域距視頻畫面底端的距離d3,第n行字幕的頂端距離所述視頻畫面底端的距離為d3+n*d5。

若字幕內(nèi)容需分3行進行顯示,那么從視頻畫面底部開始從下至上數(shù)第1行與視頻畫面底端的距離始終保持不變,為d3,第2行字幕的頂端與視頻畫面底端的距離為d3+2*d5,第3行頂端與視頻畫面底端的距離為d3+3*d5。

在字號和字幕顯示位置均確定后,通過步驟106將字幕內(nèi)容按照計算出的字號和位置在字幕顯示區(qū)域進行顯示即可。

本申請根據(jù)畫面調(diào)整字幕的方法,通過上述步驟101,進一步將所述每行顯示的最大字符數(shù)設(shè)置為40,將所述最小顯示字號設(shè)置為22,將所述最大顯示字號設(shè)置為50,將所述字幕顯示區(qū)域距視頻畫面左端的距離d1設(shè)置為100個像素,將所述字幕顯示區(qū)域距視頻畫面右端的距離d2設(shè)置為100個像素、將所述字幕顯示區(qū)域距視頻畫面底端的距離d3設(shè)置為40個像素。通過這些參數(shù)的設(shè)置,將字幕的字號和位置設(shè)置在合理的位置,滿足用戶的觀看需求,并能提升用戶的視覺體驗效果。

實施例2

參見圖2所示為本申請所述一種根據(jù)畫面調(diào)整字幕的系統(tǒng)的具體實施例,該系統(tǒng)包括:參數(shù)設(shè)置模塊10、字幕顯示區(qū)域?qū)挾扔嬎隳K20、字幕顯示區(qū)域字號計算模塊30、字幕顯示區(qū)域行數(shù)計算模塊40、字幕顯示位置計算模塊50和字幕載入模塊60,

所述參數(shù)設(shè)置模塊10,用于設(shè)置視頻畫面中的字幕顯示參數(shù),所述字幕顯示參數(shù)至少包括:字幕顯示區(qū)域上每行顯示的最大字符數(shù)、最小顯示字號、最大顯示字號、字幕顯示區(qū)域距視頻畫面左端的距離d1、字幕顯示區(qū)域距視頻畫面右端的距離d2、以及字幕顯示區(qū)域距視頻畫面底端的距離d3;

所述字幕顯示區(qū)域?qū)挾扔嬎隳K20,用于實時獲取視頻畫面的寬度d0,根據(jù)所述視頻畫面的寬度d0、所述字幕顯示區(qū)域距視頻畫面左端的距離d1、以及所述字幕顯示區(qū)域距視頻畫面右端的距離d2,計算字幕顯示區(qū)域的寬度d4,d4=d0-d1-d2;

所述字幕顯示區(qū)域字號計算模塊30,用于根據(jù)所述字幕顯示區(qū)域的寬度、所述每行顯示的最大字符數(shù)、所述最小顯示字號和所述最大顯示字號,計算所述字幕顯示區(qū)域所能容納的最大字號;

所述字幕顯示區(qū)域行數(shù)計算模塊40,用于根據(jù)所述字幕顯示區(qū)域所能容納的最大字號以及當(dāng)前字幕顯示區(qū)域的寬度,計算當(dāng)前字幕內(nèi)容所需顯示的行數(shù);

所述字幕顯示位置計算模塊50,用于根據(jù)所述字幕顯示區(qū)域所能容納的最大字號、所述當(dāng)前字幕內(nèi)容所需顯示的行數(shù)、以及所述字幕顯示區(qū)域距視頻畫面底端的距離,計算每行字幕的顯示位置,使得靠近所述視頻畫面底端的第一行字幕底端與所述視頻畫面底端之間的距離保持為d3;

所述字幕載入模塊60,用于根據(jù)所述字幕顯示區(qū)域所能容納的最大字號、所述當(dāng)前字幕內(nèi)容所需顯示的行數(shù)、以及所述每行字幕的顯示位置,將字幕內(nèi)容顯示到所述字幕顯示區(qū)域。

本申請中的參數(shù)設(shè)置模塊10,能夠設(shè)置字幕顯示區(qū)域上每行字幕中能夠顯示的最大字符數(shù),使得每行顯示的字符數(shù)不大于該最大字符數(shù);還能通過設(shè)置最小顯示字號和最大顯示字號,將字幕中文字的大小設(shè)置在該區(qū)間范圍內(nèi),即使視頻畫面被拉伸或縮小,字幕中文字的大小也會始終保持在此范圍內(nèi),不會隨視頻畫面變得過大或過小,給觀眾良好的視覺體驗效果。本申請中的參數(shù)設(shè)置模塊10還通過設(shè)置字幕顯示區(qū)域距視頻畫面左端的距離d1、字幕顯示區(qū)域距視頻畫面右端的距離d2、以及字幕顯示區(qū)域距視頻畫面底端的距離d3,將字幕顯示區(qū)域控制在這些參數(shù)所限定的位置范圍內(nèi),滿足用戶觀看需求的同時提升用戶體驗效果。

上述字幕顯示區(qū)域字號計算模塊30,進一步用于:

將字號設(shè)置為所述最小顯示字號,利用ObjectC中屬性字符串類提供的函數(shù),計算當(dāng)前字號下每個字符的寬度;

根據(jù)所述字幕顯示區(qū)域的寬度和所述每個字符的寬度,計算所述字幕顯示區(qū)域的寬度范圍所能容納的字符數(shù);

判斷所述字符數(shù)是否超過所述每行顯示的最大字符數(shù),若超過,則將字號加1,再計算對應(yīng)的字符的寬度和所述字幕顯示區(qū)域的寬度所能容納的字符數(shù),直至當(dāng)前字號在當(dāng)前字幕顯示區(qū)域的寬度下每行顯示的字符數(shù)小于等于所述最大字符數(shù)或當(dāng)前字號達到所述最大顯示字號,此時得到的字號為滿足字號范圍和所述每行顯示的最大字符數(shù)下所述字幕顯示區(qū)域所能容納的最大字號。

通過字幕顯示區(qū)域字號計算模塊30對字號的計算,獲得到了同時滿足字號范圍以及不超過每行顯示的最大字符數(shù)這兩個條件下的最大字號,并不會因為視頻畫面寬度過大或過小而造成字號過大或過小以致影響觀看。

上述字幕顯示區(qū)域行數(shù)計算模塊40,進一步用于:

根據(jù)當(dāng)前字號的大小,計算當(dāng)前字號下,當(dāng)前字幕內(nèi)容的總寬度,其中,當(dāng)前字幕內(nèi)容的總寬度為當(dāng)前字號下各個字符的寬度之和;

用計算出的所述字幕內(nèi)容的總寬度除以所述字幕顯示區(qū)域的寬度,得出當(dāng)前字幕內(nèi)容所需顯示的行數(shù)。例如,若計算出的字幕內(nèi)容的總寬度為45,字幕顯示區(qū)域的寬度為30,用45除以30的結(jié)果為1.5,則代表當(dāng)前字幕內(nèi)容所需顯示的行數(shù)為2行。

上述字幕顯示位置計算模塊50,進一步用于:

根據(jù)當(dāng)前字號的大小,計算當(dāng)前字號下,每行字幕的高度d5;

從視頻畫面底部開始從下至上數(shù)第1行字幕的底端距離所述視頻畫面底端的距離為所述字幕顯示區(qū)域距視頻畫面底端的距離d3,第n行字幕的頂端距離所述視頻畫面底端的距離為d3+n*d5。

若字幕內(nèi)容需分3行進行顯示,那么從視頻畫面底部開始從下至上數(shù)第1行與視頻畫面底端的距離始終保持不變,為d3,第2行字幕的頂端與視頻畫面底端的距離為d3+2*d5,第3行字幕的頂端與視頻畫面底端的距離為d3+3*d5。

優(yōu)選地,本申請中的參數(shù)設(shè)置模塊10對各項參數(shù)的設(shè)置情況如下:

每行顯示的最大字符數(shù)為40,最小顯示字號為22,最大顯示字號為50,字幕顯示區(qū)域距視頻畫面左端的距離d1=100個像素,字幕顯示區(qū)域距視頻畫面右端的距離d2=100個像素、字幕顯示區(qū)域距視頻畫面底端的距離d3=40個像素。

實施例3

以下提供一種本發(fā)明根據(jù)畫面調(diào)整字幕的方法的應(yīng)用實施例,參見圖3,具體包括:

步驟201、設(shè)定字幕顯示參數(shù)。包括設(shè)定字幕每行顯示的范圍,此處將每行最多顯示的字符數(shù)設(shè)為38個(中文和英文皆如此),設(shè)定最小顯示字號為18號,最大顯示字號為40號,設(shè)定字幕區(qū)域距視頻畫面左端的距離為80個像素,距視頻畫面右端的距離為80個像素,距視頻畫面底端為50個像素。

對字幕每行的顯示范圍、最小顯示字號和最大顯示字號進行設(shè)定,使得字幕在跟隨畫面變化的同時,避免字幕隨著畫面拉伸縮小而過大或過小。此外,通過設(shè)定字幕區(qū)域距視頻畫面左端、右端和底端的距離,就可以保證字幕顯示時,位置不會超過一定范圍或太靠近底端,影響觀看效果。

步驟202、在顯示一條字幕時,計算能夠顯示字幕區(qū)域的寬度,即(視頻畫面寬度-字幕區(qū)域距視頻畫面左端的距離80個像素-字幕區(qū)域距視頻畫面右端的距離80個像素)。

步驟203、計算字幕區(qū)域?qū)挾瓤梢匀菁{多大字號的字幕。首先將字號設(shè)置為最小字號18號,然后利用ObjectC提供的方法計算當(dāng)前字號每個字符的寬度,繼而計算出當(dāng)前的字幕區(qū)域?qū)挾饶軌蛉菁{多少個字符。如果超過最多顯示的38個,則字號加1,再繼續(xù)做同樣的判斷。這樣字號不斷加1,不斷判斷,直至當(dāng)前字號達到最大值40號,或者當(dāng)前字號在當(dāng)前寬度下顯示的字符數(shù)小于38個。這樣最終得到的字號,就是在滿足字號范圍和每行顯示不超過38個字這兩個條件下,最大的字號,并不會因為畫面寬度過大或過小而造成字號過大或過小以致影響觀看。

步驟204、確定了字號之后,根據(jù)當(dāng)前字號的大小,計算當(dāng)前字號下,當(dāng)前字幕內(nèi)容的寬度,再用當(dāng)前字幕內(nèi)容的寬度除以當(dāng)前字幕區(qū)域的寬度,計算當(dāng)前內(nèi)容需要分幾行。

步驟205、然后再根據(jù)當(dāng)前字號計算這些行所需要的高度。由于CATextLayer只能設(shè)置其頂部距視頻畫面窗口底部的距離,所以將這個高度加上距底距離(50個像素),將這個值設(shè)定為CATextLayer頂部距離畫面窗口底端的距離。這樣每次都計算高度,算到CATextLayer頂部位置,可以間接地保證CATextLayer底部距離畫面窗口底端的距離不變,達到CATextLayer自身沒有的底部對齊的效果。

步驟206、最后在字號和位置都確定后,將文字顯示到設(shè)定好的CATextLayer區(qū)域即可。

本申請所提供的上述方法,能夠根據(jù)視頻畫面的寬度調(diào)整字幕顯示的大小,使字幕的大小保持在最小顯示字號和最大顯示字號所規(guī)定的范圍內(nèi),避免由于視頻寬度過大或過小而導(dǎo)致顯示的字幕過大或過小,影響用戶的正常觀看。另外,本申請所提供方案能夠根據(jù)字幕內(nèi)容調(diào)整CATextLayer位置,讓沒有底部對齊的控件CATextLayer間接具有了底部對齊的功能,達到了底部對齊的效果,使得通過CATextLayer實現(xiàn)的字幕顯示更符合用戶習(xí)慣,給用戶帶來更好的視覺效果。

本實施例將每行顯示的最大字符數(shù)設(shè)置為38,將最小顯示字號設(shè)置為18,將最大顯示字號設(shè)置為40,將字幕顯示區(qū)域距視頻畫面左端的距離d1設(shè)置為80個像素,將字幕顯示區(qū)域距視頻畫面右端的距離d2設(shè)置為80個像素、將字幕顯示區(qū)域距視頻畫面底端的距離d3設(shè)置為50個像素。本申請將這些參數(shù)設(shè)為以上值,使得無論視頻畫面如何調(diào)整也能保證字幕能夠正常顯示,滿足用戶的觀看需求,而且,也能使得字幕始終保持底部對齊,給用戶帶來良好的視覺體驗效果。

當(dāng)然,本申請所設(shè)置的各項參數(shù)均可根據(jù)實際情況進行優(yōu)化調(diào)整,例如視頻畫面中字幕顯示區(qū)域上每行顯示的最大字符數(shù)、最小顯示字號、最大顯示字號、字幕顯示區(qū)域距視頻畫面左端的距離、字幕顯示區(qū)域距視頻畫面右端的距離、以及字幕顯示區(qū)域距視頻畫面底端的距離等均可按照用戶需求或根據(jù)視頻實際顯示效果進行適應(yīng)性調(diào)整。

通過以上各實施例可知,本申請存在的有益效果是:

第一,本發(fā)明所提供的根據(jù)畫面調(diào)整字幕的方法及系統(tǒng),能夠?qū)崟r獲取視頻畫面的寬度,并能根據(jù)視頻畫面的寬度實時調(diào)整字幕的字號和顯示的行數(shù),使得無論視頻畫面如何變化,字幕的字號始終處于最小顯示字號和最大顯示字號的范圍內(nèi),避免了字幕隨著畫面的拉伸而變得過大或過小,使得字幕的大小隨視頻畫面的變化始終處于較佳的字號范圍內(nèi),滿足用戶的觀看需求的同時有效提升了用戶的體驗效果。

第二,本發(fā)明所提供的根據(jù)畫面調(diào)整字幕的方法及系統(tǒng),能夠?qū)ψ帜伙@示區(qū)域的位置進行設(shè)定,使得字幕顯示時位置不會超過一定的范圍,而且還能夠使得無論顯示幾行字幕時,始終能夠?qū)崿F(xiàn)底部對齊,避免了顯示行數(shù)有多行時,字幕顯示無規(guī)則且混亂的現(xiàn)象,給用戶帶來良好的視覺體驗效果。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、裝置、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。

上述說明示出并描述了本申請的若干優(yōu)選實施例,但如前所述,應(yīng)當(dāng)理解本申請并非局限于本文所披露的形式,不應(yīng)看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識進行改動。而本領(lǐng)域人員所進行的改動和變化不脫離本申請的精神和范圍,則都應(yīng)在本申請所附權(quán)利要求的保護范圍內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1