/// <summary> /// 播放错误回调 /// </summary> private void OnEncounteredError(UniversalMediaPlayer p) { int maxReconnectTime = TryGetMaxConnectTime(); if (currentReconnectTime < maxReconnectTime) { currentReconnectTime++; if (CurrentCameraDev != null) { string path = p == null ? "" : p.Path; Debug.LogErrorFormat("ReconnectVideo:{0} connectTimes:{1}", path, currentReconnectTime); DestroyImmediate(p.transform.gameObject); if (!IsInvoking("ShowVideoByReconnect")) { Invoke("ShowVideoByReconnect", 0.1f); } } else { Log.Error("CameraAlarmFollowUI.OnEncounteredError.CurrentCameraDev is null!"); } } else { //Debug.LogError("Error:" + player.LastError); DestroyImmediate(p.transform.gameObject); connectBg.SetActive(true); if (VedioPrompt) { VedioPrompt.text = "视频连接失败!"; } UGUIMessageBox.Show("视频连接失败!"); } }
/// <summary> /// 显示视屏(通过Rtsp地址) /// </summary> /// <param name="rtspUrl"></param> public void ShowVideo(string rtspUrl, UniversalMediaPlayer vedioPlayer) { try { if (connectBg) { connectBg.SetActive(true); } if (vedioPlayer) { if (vedioPlayer.Player == null) { Debug.LogError("Error : RtspVideo.ShowVideo-> vedioPlayer.Player == null!"); return; } if (vedioPlayer.IsPlaying) { vedioPlayer.Stop(); } vedioPlayer.Path = rtspUrl; vedioPlayer.Volume = 100; vedioPlayer.PlayRate = 1; vedioPlayer.Play(); } else { Debug.LogError("Error : RtspVideo.ShowVideo-> UniversalMediaPlayer is null!"); } } catch (Exception ex) { Debug.LogError("Error : RtspVideo.ShowVideo-> " + ex); } }
/* * How to reproduce the bug: * 1. Run the app on an Android device. * 2. Press Play button. * 3. After the video has been started, press Quit. * 4. Run the app again. * 5. Press Play button. * 6. Crash. */ public void PlayButtonHandler() { UniversalMediaPlayer player = FindObjectOfType <UniversalMediaPlayer>(); Assert.IsNotNull(player); player.Path = "rtmp://vd2.wmspanel.com/video_demo/stream"; player.Play(); }
/// <summary> /// 播放错误回调 /// </summary> private void OnEncounteredError(UniversalMediaPlayer p) { //Debug.LogError("Error:" + player.LastError); DestroyImmediate(p.transform.gameObject); connectBg.SetActive(true); VedioPrompt.text = "视频连接失败!"; UGUIMessageBox.Show("视频连接失败!"); }
public override void Init(params object[] args) { base.Init(args); videoPLayerRoot = PanManager.GlobalUIRoot.Find("3DVideoRoot").transform; videoPLayerRoot.gameObject.SetActive(true); mediaPlayer = videoPLayerRoot.Find("360SphereVideo/UniversalMediaPlayer").GetComponent <UniversalMediaPlayer>(); videoCameraTran = videoPLayerRoot.Find("VideoCamera"); mediaPlayer.Path = args[0].ToString(); mediaPlayer.Play(); }
private void Awake() { if (UniversalMediaPlayer.IsValidLibrary()) { _player = Instantiate(PlayerPrefab, VideoContainer); return; } _player = null; VideoWallsLibrary.Find("VideoBlocked").gameObject.SetActive(true); VideoWallsLibrary.Find("NewVideo").gameObject.SetActive(false); VideoWallsLibrary.Find("VideoLoaded").gameObject.SetActive(false); }
/// <summary> /// 绑定播放错误事件 /// </summary> /// <param name="action"></param> private void AddEncounteredEvent(UniversalMediaPlayer vedioPlayer, Action action = null) { if (vedioPlayer) { vedioPlayer.AddEncounteredErrorEvent(() => { OnEncounteredError(vedioPlayer); }); vedioPlayer.AddPlayingEvent(OnVideoPlay); } if (action != null) { action(); } }
public void PlayCreditsRoll() { umpPlayer = GameObject.FindWithTag("UMP"); ump = umpPlayer.GetComponent <UniversalMediaPlayer>(); if (!showing) { ump.Path = path; ump.Play(); showing = true; } else { ump.PlayRate = 2; } }
// Start is called before the first frame update void Start() { // ========== CCTV Streaming ========== ump = GameObject.Find("UMP").GetComponent <UniversalMediaPlayer>(); cctvView = GameObject.Find("CCTV_View").GetComponent <RawImage>(); txtStreaming = GameObject.Find("TXT_Streaming").GetComponent <Text>(); // ========== Control PTZ ========== ipAddress = GameObject.Find("IFD_IP").GetComponent <InputField>(); btnLeft = GameObject.Find("BTN_Left").GetComponent <Button>(); btnRight = GameObject.Find("BTN_Right").GetComponent <Button>(); btnUp = GameObject.Find("BTN_Up").GetComponent <Button>(); btnDown = GameObject.Find("BTN_Down").GetComponent <Button>(); btnZoomIn = GameObject.Find("BTN_ZoomIn").GetComponent <Button>(); btnZoomOut = GameObject.Find("BTN_ZoomOut").GetComponent <Button>(); }
/// <summary> /// 打开当前设备的监控视频 /// </summary> /// <param name="cameraDev"></param> public void ShowCurrentCameraVedio(CameraDevController cameraDev) { if (CameraVideoManage.Instance) { Dev_CameraInfo camInfo = cameraDev.GetCameraInfo(cameraDev.Info); // if (camInfo != null) CameraVideoManage.Instance.rtspVideo.ShowVideo(camInfo.RtspUrl, cameraDev.Info); if (IsMinPrompt) { if (string.IsNullOrEmpty(camInfo.RtspUrl)) { Debug.LogError("Error : RtspVideo.ShowVideo-> rtspURL is null!"); UGUIMessageBox.Show("Rtsp地址未输入!"); if (VedioPrompt) { VedioPrompt.text = "Rtsp地址未输入!"; } if (CameraAlarmManage.Instance.VedioPrompt) { CameraAlarmManage.Instance.VedioPrompt.text = "Rtsp地址未输入!"; } IsMinPrompt = true; return; } if (!IsEffectiveURL(camInfo.RtspUrl)) { UGUIMessageBox.Show("Rtsp地址无效!"); if (VedioPrompt) { VedioPrompt.text = "Rtsp地址无效!"; } IsMinPrompt = true; return; } } GameObject Obj = Instantiate(VedioPrefabs, PlayParent.transform) as GameObject; Obj.transform.SetAsFirstSibling(); Obj.SetActive(true); VedioPrefabs.SetActive(false); player = Obj.GetComponent <UniversalMediaPlayer>(); AddEncounteredEvent(player, () => { ShowVideo(camInfo.RtspUrl, player); }); } }
public void Close() { if (_player == null) { return; } Destroy(_player.gameObject); _player = Instantiate(PlayerPrefab, VideoContainer); _videoFilename = ""; _offsetTime = 0f; VideoName.text = ""; OffsetValue.text = "0.00"; _player.Path = ""; ShowVideoManager(false); }
/// <summary> /// 打开当前设备的监控视频 /// </summary> /// <param name="cameraDev"></param> private void ShowCurrentCameraVedio() { try { if (CurrentCameraDev == null) { return; } if (CurrentCameraDev.Info != null) { TitleText.text = CurrentCameraDev.Info.Name; } else { TitleText.text = "监控视频"; Debug.LogError("Error.VideofollowItem.ShowCurrentCameraVideo: CurrentCameraDev.Info is null:" + CurrentCameraDev.transform.name); return; } Dev_CameraInfo camInfo = CurrentCameraDev.GetCameraInfo(CurrentCameraDev.Info); if (string.IsNullOrEmpty(camInfo.RtspUrl)) { Debug.LogError("Error : RtspVideo.ShowVideo-> rtspURL is null!"); UGUIMessageBox.Show("Rtsp地址未输入!"); return; } if (!IsEffectiveURL(camInfo.RtspUrl)) { UGUIMessageBox.Show("Rtsp地址无效!"); return; } GameObject Obj = Instantiate(VedioPrefab, VideoWindow.transform) as GameObject; Obj.transform.SetAsFirstSibling(); Obj.SetActive(true); VedioPrefab.SetActive(false); player = Obj.GetComponent <UniversalMediaPlayer>(); AddEncounteredEvent(player, () => { ShowVideo(camInfo.RtspUrl, player); }); }catch (Exception e) { Debug.LogErrorFormat("VideofollowItem.ShowCurrentCameraVideo.ErrorInfo:{0}", e.ToString()); } }
private int currentReconnectTime; //当前重连次数 /// <summary> /// 播放错误回调 /// </summary> private void OnEncounteredError(UniversalMediaPlayer p) { Destroy(p.gameObject);//等待一秒再删除老播放器 connectBg.SetActive(true); UGUIMessageBox.Show("视频连接失败!"); //if (currentReconnectTime < maxReconnectTime) //{ // currentReconnectTime++; // DestroyImmediate(p.transform.gameObject);//删除老的播放器 // ShowCurrentCameraVedio(); //} //else //{ // //Debug.LogError("Error:" + player.LastError); // DestroyImmediate(p.transform.gameObject); // connectBg.SetActive(true); // UGUIMessageBox.Show("视频连接失败!"); //} }
/// <summary> /// 显示视屏(通过Rtsp地址) /// </summary> /// <param name="rtspUrl"></param> private void ShowVideo(string rtspUrl, UniversalMediaPlayer vedioPlayer) { if (connectBg) { connectBg.SetActive(true); } if (vedioPlayer) { if (vedioPlayer.IsPlaying) { vedioPlayer.Stop(); } vedioPlayer.Path = rtspUrl; vedioPlayer.Play(); } else { Debug.LogError("Error : RtspVideo.ShowVideo-> UniversalMediaPlayer is null!"); } }
// ------------------------------------------- /* * We will apply the movement to the camera */ private void PlayUMP(string _phoneNumber) { #if ENABLE_STREAMING if (m_ump == null) { m_ump = GameObject.FindObjectOfType <UniversalMediaPlayer>(); m_ump.RenderingObjects = new GameObject[1]; } else { if (m_ump.IsPlaying) { m_ump.Stop(); } } if (m_ump != null) { m_ump.RenderingObjects[0] = m_streamingWindow.gameObject; m_ump.Path = GameConfiguration.URL_RTMP_SERVER_ASSISTANCE + _phoneNumber; m_ump.Prepare(); m_ump.AddPreparedEvent(OnPreparedVideo); } #endif }
/// <summary> /// 打开摄像头监控视频 /// </summary> /// <param name="cameraDev"></param> public void ShowCameraVedio(CameraDevController cameraDev, CameraAlarmFollowUI SmallUI) { Log.Debug("ShowCameraVedio", string.Format("{0},{1}", cameraDev, SmallUI)); if (VedioPrompt != null) { VedioPrompt.text = "视频连接中..."; } SmallCameraAlarmFollow = SmallUI; currentCameraDev = cameraDev; CurrentDevID = currentCameraDev.Info.Id.ToString(); if (MaxCameraAlarmList.Count != 0) { MaxCameraAlarmList.Clear(); } if (AlarmPushManage.Instance.NewestCameraAlarmPush != null) { MaxCameraAlarmList.AddRange(AlarmPushManage.Instance.NewestCameraAlarmPush); } if (!VedioWindow.activeSelf) { VedioWindow.SetActive(true); } VideoTog.isOn = true; TitleText.text = cameraDev.Info.Name; if (CameraVideoManage.Instance) { Dev_CameraInfo camInfo = cameraDev.GetCameraInfo(cameraDev.Info); // if (camInfo != null) CameraVideoManage.Instance.rtspVideo.ShowVideo(camInfo.RtspUrl, cameraDev.Info); if (IsPrompt) { if (string.IsNullOrEmpty(camInfo.RtspUrl)) { Debug.LogError("Error : RtspVideo.ShowVideo-> rtspURL is null!"); if (VedioPrompt) { VedioPrompt.text = "Rtsp地址未输入!"; } UGUIMessageBox.Show("Rtsp地址未输入!"); if (SmallCameraAlarmFollow.VedioPrompt) { SmallCameraAlarmFollow.VedioPrompt.text = "Rtsp地址未输入!"; } return; } if (!IsEffectiveURL(camInfo.RtspUrl)) { UGUIMessageBox.Show("Rtsp地址无效!"); VedioPrompt.text = "Rtsp地址无效!"; return; } } GameObject Obj = Instantiate(VedioPrefabs, PlayParent.transform) as GameObject; Obj.transform.SetAsFirstSibling(); Obj.SetActive(true); VedioPrefabs.SetActive(false); player = Obj.GetComponent <UniversalMediaPlayer>(); AddEncounteredEvent(player, () => { ShowVideo(camInfo.RtspUrl, player); }); } }