亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在HarmonyOS中使用AVPlayer實現(xiàn)外掛字幕

HarmonyOS開發(fā)者 ? 來源:HarmonyOS開發(fā)者 ? 2025-10-15 11:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言:為什么需要“外掛字幕”?

在視頻播放場景中,用戶常需要外掛字幕(如 SRT、VTT 等格式)來提升觀看體驗,尤其是在外語教學(xué)、影視解說、直播回放等場景中。

HarmonyOS 通過 ArkTS + AVPlayer 的 subtitleUpdate 事件機制,我們可以實現(xiàn)視頻播放前預(yù)加載字幕,并動態(tài)顯示字幕內(nèi)容,真正實現(xiàn)“外掛字幕”功能!

一、核心能力:AVPlayer 支持 subtitleUpdate 事件

HarmonyOS 的 AVPlayer 提供了以下關(guān)鍵接口,用于實現(xiàn)外掛字幕:

// 注冊字幕更新事件
 avPlayer.on('subtitleUpdate',async(info: media.SubtitleInfo) => {
 // 獲取當(dāng)前播放幀對應(yīng)的字幕信息
 if(info) {
  lettext = (!info.text) ?'': info.text
  letstartTime = (!info.startTime) ?0: info.startTime
  letduration = (!info.duration) ?0: info.duration
  console.info('subtitleUpdate info: text='+ text +' startTime='+ startTime +' duration='+ duration);
  }else{
  console.info('subtitleUpdate info is null');
  }
 });
}

SubtitleInfo 結(jié)構(gòu)如下:

interfaceSubtitleInfo{
text:string;  // 字幕文本
startTime:number;// 字幕開始顯示的時間(毫秒),以視頻播放開始的時刻為 0 點
endTime:number; // 字幕結(jié)束顯示的時間(毫秒)
}

二、實現(xiàn)方案:外掛字幕

字幕文件格式(SRT 示例)

1
0001,000 --> 0004,000
這是第一行字幕。
2
0005,000 --> 0008,000
這是第二行字幕。

步驟 1:調(diào)用addSubtitleFromFd,使用視頻播放的AVPlayer實例設(shè)置外掛字幕資源。

import{ media }from'@kit.MediaKit';
import{ common }from'@kit.AbilityKit';
// 類成員定義avPlayer和context。
privateavPlayer: media.AVPlayer|null=null;
privatecontext: common.UIAbilityContext|undefined=undefined;

// 在業(yè)務(wù)函數(shù)中(示例工程函數(shù)名為avSetupVideoAndSubtitle):
// 創(chuàng)建avPlayer實例對象。
this.avPlayer=awaitmedia.createAVPlayer();
this.context=this.getUIContext().getHostContext()ascommon.UIAbilityContext;
// 設(shè)定視頻源(此處省略)。
// 設(shè)定字幕。
letfileDescriptorSub =awaitthis.context?.resourceManager.getRawFd('xxx.srt');
this.avPlayer.addSubtitleFromFd(fileDescriptorSub.fd, fileDescriptorSub.offset, fileDescriptorSub.length);

步驟 2:調(diào)用on('subtitleUpdate')接口,注冊字幕回調(diào)函數(shù)。

import{ media }from'@kit.MediaKit';
// 類成員定義用來顯示的字幕字符串。
@Statesubtitle:string='subtitleUpdate info';
privateavPlayer: media.AVPlayer|null=null;
privatetag:string='';
// 創(chuàng)建avPlayer實例對象。
this.avPlayer=awaitmedia.createAVPlayer();
// 字幕回調(diào)函數(shù)。
this.avPlayer.on('subtitleUpdate',(info: media.SubtitleInfo) =>{
 if(!!info) {
  lettext = (!info.text) ?'': info.text;
  letstartTime = (!info.startTime) ?0: info.startTime;
  letduration = (!info.duration) ?0: info.duration;
  console.info(`${this.tag}: text=${text}startTime=${startTime}duration=${duration}`);
  this.subtitle= text;
 }else{
  console.info(`${this.tag}: subtitleUpdate info is null`);
 }
});

步驟 3:(可選)當(dāng)需要不顯示字幕的時候,使用視頻播放的AVPlayer實例注銷字幕回調(diào)函數(shù)。

import{ media }from'@kit.MediaKit';
// 類成員定義avPlayer和context。
privateavPlayer: media.AVPlayer|null=null;
// 創(chuàng)建avPlayer實例對象。
this.avPlayer=awaitmedia.createAVPlayer();
this.avPlayer?.off('subtitleUpdate');

三、關(guān)鍵說明:當(dāng)前僅支持“播放前設(shè)置字幕”

重要限制:

當(dāng)前 HarmonyOS 的 AVPlayer 不支持動態(tài)切換字幕源(如切換不同語言字幕)

僅支持在播放前完成字幕文件加載與解析

但優(yōu)勢在于:

字幕與視頻播放時間精準同步

支持自定義字幕樣式、位置、動畫效果

適合離線視頻、教學(xué)課件、本地字幕場景

四、結(jié)語

借助 subtitleUpdate 事件與 timeUpdate 的聯(lián)動機制實現(xiàn)外掛字母的自動加載:

實現(xiàn)精準時間同步

支持 SRT/VTT 等格式解析

構(gòu)建可自定義、可擴展的字幕系統(tǒng)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 視頻
    +關(guān)注

    關(guān)注

    6

    文章

    1996

    瀏覽量

    74537
  • avplayer
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    1027
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2144

    瀏覽量

    35256

原文標題:【HarmonyOS-媒體技術(shù)-AVPlayer】手把手教你用 AVPlayer 實現(xiàn)外掛字幕(ArkTS 詳解)

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    基于開源鴻蒙的AVPlayer視頻播控開發(fā)樣例

    開源鴻蒙生態(tài)建設(shè)中,多媒體能力是構(gòu)建豐富用戶體驗的核心要素。本開發(fā)樣例基于AVPlayer實現(xiàn)AvPlayer支持流媒體和本地資源解析、媒體資源解封裝、視頻解碼和渲染功能,適用于對
    的頭像 發(fā)表于 08-21 10:22 ?1922次閱讀
    基于開源鴻蒙的<b class='flag-5'>AVPlayer</b>視頻播控開發(fā)樣例

    HarmonyOS中使AVPlayer播放流媒體

    HarmonyOS 中,使用 AVPlayer 播放流媒體,不是“能播就行”,而是要“穩(wěn)、準、快、可控”。
    的頭像 發(fā)表于 10-15 11:45 ?1168次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>HarmonyOS</b><b class='flag-5'>中使</b>用<b class='flag-5'>AVPlayer</b>播放流媒體

    基于SaaS模式的數(shù)字電視字幕控制系統(tǒng)

    【作者】:巫江;楊峰;唐繼勇;管金稱;【來源】:《電視技術(shù)》2010年02期【摘要】:介紹了基于SaaS模式的字幕控制系統(tǒng),實現(xiàn)分散編輯集中管理。通過使用XML作為中間標準數(shù)據(jù)傳輸格式,采用全新
    發(fā)表于 04-23 11:21

    藍光電影完美支持 ,海美迪HD300A高清播放器跌至底線

    外掛字幕調(diào)整菜單提供眾多可調(diào)整選項字幕軌切換字幕編碼字幕大小字幕顏色字幕輪廓顏色
    發(fā)表于 05-14 13:58

    海美迪 800B藍光硬盤播放機率先支持藍光原版獨家外掛字幕

    多條字幕(簡繁字幕、導(dǎo)評等可以同時一起掛上,或連續(xù)劇等同時掛多條字幕,按字幕鍵分別選擇),而且按字幕鍵選用時
    發(fā)表于 11-11 10:37

    海美迪HD800B高清播放機藍光測試篇!

    源的介質(zhì)就是藍光ISO文件。影片封面預(yù)覽藍光菜單很火爆有電子風(fēng)格,像是游戲界面。場景選單,可選擇你喜歡的段落播放。這里可以選擇音軌和字幕語言,先選擇DTS-HD吧,播放影片時還可以隨時更改。同樣支持外掛字幕
    發(fā)表于 11-30 12:37

    《Visual C# 2008程序設(shè)計經(jīng)典案例設(shè)計與實現(xiàn)》---滾動字幕屏幕保護程序

    《Visual C# 2008程序設(shè)計經(jīng)典案例設(shè)計與實現(xiàn)》---滾動字幕屏幕保護程序.zip
    發(fā)表于 06-17 23:03

    《Visual C# 2008程序設(shè)計經(jīng)典案例設(shè)計與實現(xiàn)》---滾動字幕動畫窗體

    《Visual C# 2008程序設(shè)計經(jīng)典案例設(shè)計與實現(xiàn)》---滾動字幕動畫窗體.zip
    發(fā)表于 06-20 22:07

    HarmonyOS音頻開發(fā)指導(dǎo):使用AVPlayer開發(fā)音頻播放功能

    應(yīng)用使用。 ● 音頻播放中,應(yīng)用時常需要用到一些急促簡短的音效,如相機快門音效、按鍵音效、游戲射擊音效等,當(dāng)前只能使用AVPlayer播放音頻文件替代實現(xiàn),
    發(fā)表于 10-19 14:26

    LCD廣告字幕機的設(shè)計與實現(xiàn)

    LCD廣告字幕機的設(shè)計與實現(xiàn)一、實驗?zāi)康?nbsp;1.了解12864點陣型液晶顯示器的顯示原理。 2.掌握12864點陣型液晶顯示器的接口設(shè)計。 3.利用12864點陣型液晶顯
    發(fā)表于 05-03 01:19 ?59次下載

    MPlayer字幕問題解決方法

    MPlayer支持掛載.utf .idx .sub .srt .smi .rt .txt .ssa .aq .jss .js .ass等格式文件。通過工具-外掛字幕或者右鍵菜單可以方便的添加字幕
    發(fā)表于 02-23 10:20 ?6505次閱讀
    MPlayer<b class='flag-5'>字幕</b>問題解決方法

    YouTube測試谷歌字幕自動生成技術(shù)

    YouTube測試谷歌字幕自動生成技術(shù) 現(xiàn)在,YouTube針對數(shù)百萬段視頻推出字幕自動生成技術(shù),最開始是為語音清晰的英語視頻提供自動生成的字幕,這一舉措深受有聽力障
    發(fā)表于 03-05 09:59 ?1356次閱讀

    基于MAX7456的視頻字幕模塊的設(shè)計與實現(xiàn)

    本文介紹了OSD系統(tǒng)的基本構(gòu)成,并從硬件和軟件兩方面闡述了使用MAX7456搭建模擬電視字幕隨屏顯示系統(tǒng)的技術(shù)要點。
    發(fā)表于 05-10 14:14 ?8620次閱讀
    基于MAX7456的視頻<b class='flag-5'>字幕</b>模塊的設(shè)計與<b class='flag-5'>實現(xiàn)</b>

    愛情洗牌字幕源代碼

    愛情洗牌字幕源代碼
    發(fā)表于 06-21 16:04 ?11次下載

    Eros Now利用Google Cloud實現(xiàn)AI驅(qū)動的字幕功能

    “通過使用AI框架和大量預(yù)先存在的數(shù)據(jù),Eros Now的內(nèi)部數(shù)據(jù)科學(xué)團隊模擬,培訓(xùn)和開發(fā)了一種先進的模型,該模型的性能相當(dāng)于人類,并且能夠生成所需的字幕電影和原著中使用的語言”,該公司一份新聞稿中說。
    的頭像 發(fā)表于 03-15 13:44 ?2659次閱讀