https://forum.unity.com/threads/videoplayer-plays-video-without-sound.446137/
http://www.appzinside.com/2017/05/26/getting-sound-of-the-new-video-player-in-unity-working-for-hololens-developers/
https://justcode.me/unity2d/how-to-play-videos-on-unity-using-new-videoplayer/
更改AudioManager.asset的静音,参考:
https://blog.csdn.net/kuangben2000/article/details/103263926
第一种播放方式:direct方式
第二种方式:audio source
如果没有声音:
1、确保设置中无禁用
2、视频中有音频
3、音频未被静音
4、使用audiosource方式,保证有listener,保证有audiosource,并拖拽到videoplayer下
5、使用url方式播放,参考代码如下:
using System.Collections;
using UnityEngine;
using UnityEngine.Video;
public class NewBehaviourScript : MonoBehaviour
{
//public RawImage image;
public VideoClip videoToPlay;
private VideoPlayer videoPlayer;
private VideoSource videoSource;
private AudioSource audioSource;
// Use this for initialization
void Start()
{
Application.runInBackground = true;
StartCoroutine(playVideo());
}
IEnumerator playVideo()
{
//Add VideoPlayer to the GameObject
videoPlayer = gameObject.AddComponent<VideoPlayer>();
//Add AudioSource
audioSource = gameObject.AddComponent<AudioSource>();
//Disable Play on Awake for both Video and Audio
videoPlayer.playOnAwake = false;
audioSource.playOnAwake = false;
audioSource.Pause();
//We want to play from video clip not from url
videoPlayer.source = VideoSource.VideoClip;
// Vide clip from Url
//videoPlayer.source = VideoSource.Url;
//videoPlayer.url = "http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4";
//Set Audio Output to AudioSource
videoPlayer.audioOutputMode = VideoAudioOutputMode.AudioSource;
//Assign the Audio from Video to AudioSource to be played
videoPlayer.EnableAudioTrack(0, true);
videoPlayer.SetTargetAudioSource(0, audioSource);
//Set video To Play then prepare Audio to prevent Buffering
videoPlayer.clip = videoToPlay;
videoPlayer.Prepare();
//Wait until video is prepared
WaitForSeconds waitTime = new WaitForSeconds(1);
while (!videoPlayer.isPrepared)
{
Debug.Log("Preparing Video");
//Prepare/Wait for 5 sceonds only
yield return waitTime;
//Break out of the while loop after 5 seconds wait
break;
}
Debug.Log("Done Preparing Video");
//Assign the Texture from Video to RawImage to be displayed
//image.texture = videoPlayer.texture;
//Play Video
videoPlayer.Play();
/*videoPlayer.controlledAudioTrackCount = 1; // <-- We have added this line. It tells video player that you will have one audio track playing in Unity AudioSource.
videoPlayer.EnableAudioTrack(0, true);
videoPlayer.SetTargetAudioSource(0, audioSource);*/
//Play Sound
audioSource.Play();
Debug.Log("Playing Video");
while (videoPlayer.isPlaying)
{
Debug.LogWarning("Video Time: " + Mathf.FloorToInt((float)videoPlayer.time));
yield return null;
}
Debug.Log("Done Playing Video");
}
}
mp4视频测试下载地址:
链接:https://pan.baidu.com/s/1WqxUvrKU6CuE49iblO3V0Q
提取码:z4q5