国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

在HarmonyOS中使用AVPlayer實現外掛字幕

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

HarmonyOS 的 AVPlayer 提供了以下關鍵接口,用于實現外掛字幕:

// 注冊字幕更新事件
 avPlayer.on('subtitleUpdate',async(info: media.SubtitleInfo) => {
 // 獲取當前播放幀對應的字幕信息
 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 結構如下:

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

二、實現方案:外掛字幕

字幕文件格式(SRT 示例)

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

步驟 1:調用addSubtitleFromFd,使用視頻播放的AVPlayer實例設置外掛字幕資源。

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

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

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

import{ media }from'@kit.MediaKit';
// 類成員定義用來顯示的字幕字符串。
@Statesubtitle:string='subtitleUpdate info';
privateavPlayer: media.AVPlayer|null=null;
privatetag:string='';
// 創建avPlayer實例對象。
this.avPlayer=awaitmedia.createAVPlayer();
// 字幕回調函數。
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:(可選)當需要不顯示字幕的時候,使用視頻播放的AVPlayer實例注銷字幕回調函數。

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

三、關鍵說明:當前僅支持“播放前設置字幕”

重要限制:

當前 HarmonyOS 的 AVPlayer 不支持動態切換字幕源(如切換不同語言字幕)

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

但優勢在于:

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

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

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

四、結語

借助 subtitleUpdate 事件與 timeUpdate 的聯動機制實現外掛字母的自動加載:

實現精準時間同步

支持 SRT/VTT 等格式解析

構建可自定義、可擴展的字幕系統

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 視頻
    +關注

    關注

    6

    文章

    2005

    瀏覽量

    74956
  • avplayer
    +關注

    關注

    0

    文章

    5

    瀏覽量

    1049
  • HarmonyOS
    +關注

    關注

    80

    文章

    2153

    瀏覽量

    36037

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

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于開源鴻蒙的AVPlayer視頻播控開發樣例

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

    HarmonyOS中使AVPlayer播放流媒體

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

    基于SaaS模式的數字電視字幕控制系統

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

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

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

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

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

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

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

    《Visual C# 2008程序設計經典案例設計與實現》---滾動字幕屏幕保護程序

    《Visual C# 2008程序設計經典案例設計與實現》---滾動字幕屏幕保護程序.zip
    發表于 06-17 23:03

    《Visual C# 2008程序設計經典案例設計與實現》---滾動字幕動畫窗體

    《Visual C# 2008程序設計經典案例設計與實現》---滾動字幕動畫窗體.zip
    發表于 06-20 22:07

    HarmonyOS音頻開發指導:使用AVPlayer開發音頻播放功能

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

    LCD廣告字幕機的設計與實現

    LCD廣告字幕機的設計與實現一、實驗目的 1.了解12864點陣型液晶顯示器的顯示原理。 2.掌握12864點陣型液晶顯示器的接口設計。 3.利用12864點陣型液晶顯
    發表于 05-03 01:19 ?59次下載

    MPlayer字幕問題解決方法

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

    YouTube測試谷歌字幕自動生成技術

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

    基于MAX7456的視頻字幕模塊的設計與實現

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

    愛情洗牌字幕源代碼

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

    Eros Now利用Google Cloud實現AI驅動的字幕功能

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