Question by
MritunjaySri · Oct 09, 2020 at 01:18 PM ·
photonmultiplayer-networkingslider
want to sync the value of the slide over the network in multiplayer ... using photon .... (sync video progress bar )?
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Events; using RenderHeads.Media.AVProVideo; using Photon.Pun; using Photon.Realtime; using System.Configuration;
public class pathinfo : MonoBehaviourPunCallbacks { public GameObject persistant; public Persistent Script; public string video;
//[SerializeField]
private string m_videoPath;
// public float time;
[SerializeField]
private MediaPlayer.FileLocation m_videoLocation = MediaPlayer.FileLocation.AbsolutePathOrURL;
[SerializeField]
private MediaPlayer newMediaPlayer;
public Slider _videoSeekSlider;
private float _setVideoSeekSliderValue;
private bool _wasPlayingOnScrub;
void Awake()
{
newMediaPlayer = GetComponent<MediaPlayer>();
persistant = GameObject.FindGameObjectsWithTag("Persistant")[0] as GameObject;
Script = persistant.GetComponent<Persistent>();
video = Script.Datastring;
m_videoPath = video;
}
void Start()
{
Invoke("playvid", 10.0f);
//newMediaPlayer.m_Loop = false;
//newMediaPlayer.OpenVideoFromFile(m_videoLocation, m_videoPath, true );
}
void playvid()
{
newMediaPlayer.OpenVideoFromFile(m_videoLocation, m_videoPath, true);
}
[PunRPC]
public void OnVideoSeekSlider()
{
if (newMediaPlayer && _videoSeekSlider && _videoSeekSlider.value != _setVideoSeekSliderValue)
{
newMediaPlayer.Control.Seek(_videoSeekSlider.value * newMediaPlayer.Info.GetDurationMs());
Debug.Log("start");
}
}
public void OnVideoSliderDown()
{
if (newMediaPlayer)
{
_wasPlayingOnScrub = newMediaPlayer.Control.IsPlaying();
if (_wasPlayingOnScrub)
{
newMediaPlayer.Control.Pause();
// SetButtonEnabled( "PauseButton", false );
// SetButtonEnabled( "PlayButton", true );
}
OnVideoSeekSlider();
}
}
public void OnVideoSliderUp()
{
if (newMediaPlayer && _wasPlayingOnScrub)
{
newMediaPlayer.Control.Play();
_wasPlayingOnScrub = false;
// SetButtonEnabled( "PlayButton", false );
// SetButtonEnabled( "PauseButton", true );
}
}
void Update()
{
if (newMediaPlayer && newMediaPlayer.Info != null && newMediaPlayer.Info.GetDurationMs() > 0f)
{
float time = newMediaPlayer.Control.GetCurrentTimeMs();
float duration = newMediaPlayer.Info.GetDurationMs();
float d = Mathf.Clamp(time / duration, 0.0f, 1.0f);
// Debug.Log(string.Format("time: {0}, duration: {1}, d: {2}", time, duration, d));
_setVideoSeekSliderValue = d;
_videoSeekSlider.value = d;
}
photonView.RPC("OnVideoSeekSlider", RpcTarget.All, "_setVideoSeekSliderValue");
}
public void OnSliderValueChange()
{
photonView.RPC("OnVideoSeekSlider", RpcTarget.All, "_setVideoSeekSliderValue");
}
}
Comment
Your answer
Follow this Question
Related Questions
Parenting over network 0 Answers
Racing game using PUN 2 0 Answers
[PHOTON] Transform not synching correctly 0 Answers
Build errors when using Photon 2 ,Build errors after using Photon 0 Answers
Instantiate with Photon 0 Answers