18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

// 注冊(cè)字幕更新事件
 avPlayer.on('subtitleUpdate',async(info: media.SubtitleInfo) => {
 // 獲取當(dāng)前播放幀對(duì)應(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;// 字幕開始顯示的時(shí)間(毫秒),以視頻播放開始的時(shí)刻為 0 點(diǎn)
endTime:number; // 字幕結(jié)束顯示的時(shí)間(毫秒)
}

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

字幕文件格式(SRT 示例)

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

步驟 1:調(diào)用addSubtitleFromFd,使用視頻播放的AVPlayer實(shí)例設(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實(shí)例對(duì)象。
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')接口,注冊(cè)字幕回調(diào)函數(shù)。

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

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

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

重要限制:

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

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

但優(yōu)勢(shì)在于:

字幕與視頻播放時(shí)間精準(zhǔn)同步

支持自定義字幕樣式、位置、動(dòng)畫效果

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

四、結(jié)語

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

實(shí)現(xiàn)精準(zhǔn)時(shí)間同步

支持 SRT/VTT 等格式解析

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

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

    關(guān)注

    6

    文章

    1996

    瀏覽量

    74528
  • avplayer
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    1027
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2144

    瀏覽量

    35221

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

    HarmonyOS中使AVPlayer播放流媒體

    HarmonyOS 中,使用 AVPlayer 播放流媒體,不是“能播就行”,而是要“穩(wěn)、準(zhǔn)、快、可控”。
    的頭像 發(fā)表于 10-15 11:45 ?1158次閱讀
    <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),實(shí)現(xiàn)分散編輯集中管理。通過使用XML作為中間標(biāo)準(zhǔn)數(shù)據(jù)傳輸格式,采用全新
    發(fā)表于 04-23 11:21

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

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

    海美迪 800B藍(lán)光硬盤播放機(jī)率先支持藍(lán)光原版獨(dú)家外掛字幕

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

    海美迪HD800B高清播放機(jī)藍(lán)光測(cè)試篇!

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

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

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

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

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

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

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

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

    LCD廣告字幕機(jī)的設(shè)計(jì)與實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康?nbsp;1.了解12864點(diǎn)陣型液晶顯示器的顯示原理。 2.掌握12864點(diǎn)陣型液晶顯示器的接口設(shè)計(jì)。 3.利用12864點(diǎn)陣型液晶顯
    發(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 ?6504次閱讀
    MPlayer<b class='flag-5'>字幕</b>問題解決方法

    YouTube測(cè)試谷歌字幕自動(dòng)生成技術(shù)

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

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

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

    愛情洗牌字幕源代碼

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

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

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