unity3d利用插件AVPro Video播放mkv格式视频、切换音轨,实现ktv点歌伴唱功能
(貌似只支持Win10和Android)
一、播放mkv文件
首先将高版本(低版本好像不支持mkv)插件AVPro o video 1.9.7导入unity
(AVPro o video 1.9.7 ,某宝55,挡人财路犹如杀人父母,插件我就不提供资源了,请支持正版,手动斜眼)
1. 在Hierarchy面板中新建一个MediaPlayer
----- 右键-->AVPro Video-->Media Player
2. 在Hierarchy面板中新建一个Canvas,然后在Canvas中新建一个空物体, 改名为Display ,其中width和height改为视频的宽高
----- 右键-->UI-->Canvas-->Create Empty
为该物体添加组件 Display uGui
----- 选中Display-->AddComponent-->搜索 Display uGui
将第一步Hierarchy面板中创建的Media Player 赋值给组件Display uGui组件上的Media Player
3. 选中Hierarchy面板中的MediaPlayer,找到挂载的MediaPlayer脚本,将Preferred Video API 改成Direct Show
将Audio Mode 改为Facebook Audio 360
----- Platform Specific-->Windows-->Preferred Video API-->Direct Show
----- Platform Specific-->Windows-->Audio Mode->Facebook Audio 360
其中 Channel Mode为所要播放的视频编码格式
4. 选中自己要播放的mkv视频,然后运行场景
----BROWSE--->选择mkv文件
此时已经可以播放mkv格式视频了,但是如何切换音轨实现开关闭原唱的功能
二、切换音轨
1. 找到MediaPlayer脚本,点击编辑
----点击齿轮--->Edit Script
此时我们需要找到脚本中149行的m_Control,改一下访问级别,改为公有的静态变量
----public static IMediaControl m_Control;
public static IMediaControl m_Control;
2. 实现点击按钮,开启和关闭原唱音轨来回切换
新建一个c#脚本,取名为MultiAudioTrackControl,将脚本挂载MainCamera上
引用 RenderHeads.Media.AVProVideo 命名空间
SetAudioTrack()方法即为切换音轨,其中int型参数为音轨的编号
因为本测试视频已知有两条音轨,所以每点击一次按钮,index在0和1之间切换
创建一个Button,每次点击调用BtnClick()方法
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using RenderHeads.Media.AVProVideo;
public class MultiAudioTrackControl : MonoBehaviour
{
int index;
public void BtnClick()
{
index = (index + 1) % 2;
MediaPlayer.m_Control.SetAudioTrack(index);
}
}
运行后,点击Button可实现音轨来回切换
到此实现 在unity3d利用插件AVPro Video播放mkv格式视频、切换音轨
by:一万六--
转载请注明出处