unity3d利用插件AVPro视频播放mkv格式视频,切换音轨,实现ktv点歌伴唱功能
(貌似只支持Win10和Android设备)
一,播放MKV文件
首先将高版本(低版本好像不支持mkv)插件AVPro o video 1.9.7导入Unity
(AVPro o video 1.9.7,某宝55,挡人财路犹如杀人父母,插件我就不提供资源了,请支持正版,手动斜眼)
1.在Hierarchy面板中新建一个MediaPlayer
-----右键 - > AVProVideo - >MediaPlayer
2.在Hierarchy面板中新建一个Canvas,然后在Canvas中新建一个空物体,改名为Dispaly,其中宽度和高度改为视频的宽高
-----右键 - > UI - >Canvas - >CreateEmpty
为该物体添加组件Display uGui
-----选中Display - > AddComponent - >搜索Display uGui
将第一步Hierarchy面板中创建的MediaPlayer 赋值给组件Display uGui组件上的媒体播放器
3.选中Hierarchy面板中的MediaPlayer,找到挂载的MediaPlayer脚本,将Preferred Video API改成Direct Show
将Audio Mode改为Facebook Audio 360
-----Platform Specific - > Windows - >Preferred Video API - >Direct Show
( 若选择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型参数为音轨的编号
因为本测试视频已知有两条音轨,所以每点击一次按钮,索引在0和1之间切换
创建一个按钮,每次点击调用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);
}
}
运行后,点击按钮可实现音轨来回切换
到此实现在unity3d利用插件AVPro Video播放mkv格式视频,切换音轨
by:一万六 -
转载请注明出处