CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
[CriMana]多语言播放

范例描述

概要

cri4u_samples_crimana_basic08_screenshot.png

本范例演示视频的多语言播放。
多语言播放可以通过使用带有多个副音轨和字幕通道的数据来实现。
您可以使用屏幕右侧的按钮在副音轨和字幕频道之间切换。
在屏幕底部会显示与字幕通道相应的字幕内容。

场景描述


中间件 CRI Sofdec (CRI Mana)
范例 Basicサンプル
存储路径 /CRIWARE/SDK/unity/samples/UnityProject/Assets/Scenes/crimana/basic/
场景文件 Scene_08_Multilingual.unity


程序描述

设置从 CriManaMovieController.player 属性获取的 CriMana.Player 的副音轨和字幕通道。


关于副音轨

您可以使用 CriMana.Player.SetSubAudioTrack 指定副音轨。
但是,仅当视频停止时才能指定副音轨。
在范例代码中,视频在停止播放并指定副音轨后再次播放。
/* call Stop and wait until the player stops */
/* subaudio track can be changed when player-state is "Stop" */
player.Stop();
while (true)
{
if (player.status == CriMana.Player.Status.Stop) break;
yield return null;
}
/* set subaudio track and restart */
player.SetSubAudioTrack(track);
player.Start();

关于字幕的获取

可以通过使用 CriMana.Player.OnSubtitleChange 回调获取字幕信息。
字幕内容切换时回调事件会被调用。
/* add a listener to observe subtitle changes */
player.OnSubtitleChanged += UpdateSubtitle;
/* method called from player.OnSubtitleChange event */
void UpdateSubtitle(System.IntPtr ptr)
{
text.text = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(ptr);
}
获取字幕时,需要将作为回调参数传递的指针中的字幕信息转换为字符串。
在范例代码中,数据的字幕信息被以UTF-8编码转换。
在实际应用中,应该根据数据的字符代码将其适当地转换为字符串。
详细信息请参阅 带字幕视频

关于字幕通道

字幕通道可以通过 CriMana.Player.SetSubtitleChannel 指定。
注意指定通道的字幕会在下一次切换字幕时获取。