public override void Pause() { NativePause(); isPausedBeforeSeek = true; statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_PAUSED; GetStatusPlayer(); }
public override void Resume() { NativeStartPlayBack(); isPausedBeforeSeek = false; statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_PLAYING; GetStatusPlayer(); }
public override void ClosePlayback() { statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_CLOSED; WebGLNexPlayerNativeShutdown(m_Instance); Log("NEXPLAYER_EVENT_CLOSED will be called"); OnEvent(NexPlayerEvent.NEXPLAYER_EVENT_CLOSED, 0, 0); }
public override void Pause() { pausedBeforeSeeking = true; // Other wise it won't be updated until the next Update() statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_PAUSED; WebGLNexPlayerPause(m_Instance); }
public override void Init(string URI, bool autoPlay, bool useExtendedLogs) { this.URI = URI; this.useExtendedLogs = useExtendedLogs; statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_CLOSED; m_Instance = WebGLNexPlayerCreate(this.URI, autoPlay, useExtendedLogs); textureToUpdate = new Texture2D(0, 0, TextureFormat.ARGB32, false); textureToUpdate.wrapMode = TextureWrapMode.Repeat; }
public void TooglePlayPause() { Debug.Log("Click TooglePlayPause"); NexPlayerStatus statusPlayer = player.GetStatusPlayer(); if (statusPlayer == NexPlayerStatus.NEXPLAYER_STATUS_PLAYING) { OnApplicationPause(true); } else if (statusPlayer == NexPlayerStatus.NEXPLAYER_STATUS_PAUSED || statusPlayer == NexPlayerStatus.NEXPLAYER_STATUS_OPENED) { OnApplicationPause(false); } }
public override void Init(string URI, bool autoPlay, bool useExtendedLogs) { this.URI = URI; this.autoPlay = autoPlay; this.useExtendedLogs = useExtendedLogs; statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_CLOSED; if (NativeCheckValidity()) { NativeInit(); } else { throw new System.Exception("Invalid Time Lock!"); } }
void EventNotify(NexPlayerEvent paramEvent, int param1, int param2) { if (paramEvent != NexPlayerEvent.NEXPLAYER_EVENT_ON_TIME) { Debug.Log("EventNotify: " + paramEvent + ", param1: " + param1 + ", param2: " + param2); } switch (paramEvent) { case NexPlayerEvent.NEXPLAYER_EVENT_TEXTURE_CHANGED: // It's important to change the texture of every Unity object that should display the video frame when this callback is called if (GetComponent <Renderer>()) { GetComponent <Renderer>().material.mainTexture = player.GetTexture(); } else { GetComponent <RawImage>().texture = player.GetTexture(); } if (rendererToUpdate != null) { foreach (Renderer renderer in rendererToUpdate) { renderer.material.mainTexture = player.GetTexture(); } } break; case NexPlayerEvent.NEXPLAYER_EVENT_ON_TIME: SetCurrentTime(); break; case NexPlayerEvent.NEXPLAYER_EVENT_TRACK_CHANGED: SetVideoSize(); break; case NexPlayerEvent.NEXPLAYER_EVENT_INIT_COMPLEATE: { status.text = "Opened"; playPauseImage.sprite = playSprite; } break; case NexPlayerEvent.NEXPLAYER_EVENT_PLAYBACK_STARTED: { SetTotalTime(); status.text = "Playing"; playPauseImage.sprite = pauseSprite; } break; case NexPlayerEvent.NEXPLAYER_EVENT_PLAYBACK_PAUSED: { status.text = "Pause"; playPauseImage.sprite = playSprite; } break; case NexPlayerEvent.NEXPLAYER_EVENT_END_OF_CONTENT: { status.text = "Pause"; playPauseImage.sprite = playSprite; ToogleQuit(); } break; case NexPlayerEvent.NEXPLAYER_EVENT_BUFFERING_STARTED: status.text = "Buffering..."; break; case NexPlayerEvent.NEXPLAYER_EVENT_BUFFERING_ENDED: { NexPlayerStatus statusPlayer = player.GetStatusPlayer(); if (statusPlayer == NexPlayerStatus.NEXPLAYER_STATUS_PLAYING) { status.text = "Playing"; } else if (statusPlayer == NexPlayerStatus.NEXPLAYER_STATUS_PAUSED) { status.text = "Pause"; } } break; case NexPlayerEvent.NEXPLAYER_EVENT_ERROR: { status.text = "Error"; player = null; switch (param1) { case (int)NexPlayerError.NEXPLAYER_ERROR_GENERAL: Debug.LogError("NEXPLAYER_ERROR_GENERAL"); break; case (int)NexPlayerError.NEXPLAYER_ERROR_SRC_NOT_FOUND: Debug.LogError("NEXPLAYER_ERROR_SRC_NOT_FOUND"); break; } } break; case NexPlayerEvent.NEXPLAYER_EVENT_CLOSED: { player = null; GoBack(); } break; } }
private void CallBackInMainThread(int paramEvent, int param1, int param2) { lock (this) //This can be null the second time it's called. Why? ... I don't know { Log("CallBack paramEvent: " + paramEvent + ", param1: " + param1 + ", param2: " + param2); switch (paramEvent) { case NEXPLAYER_TEXTURE_CHANGED: { if (param1 == 0) { // First texture created. Subsequent calls will have this set to 0 NativeOpenURI(URI); statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_OPENED; CallOnEvent(NexPlayerEvent.NEXPLAYER_EVENT_INIT_COMPLEATE, 0, 0); if (autoPlay) { NativeStartPlayBack(); } } else { widthTexture = param1; heightTexture = param2; Log("Texture2D heightTexture: " + heightTexture + ", widthTexture: " + widthTexture); textureToUpdate = new Texture2D(widthTexture, heightTexture, TextureFormat.BGRA32, false); //TextureFormat.RGBA32 TextureFormat.BGRA32 Log("new Texture2D done"); textureToUpdate.filterMode = FilterMode.Bilinear; textureToUpdate.anisoLevel = 1; textureToUpdate.wrapMode = TextureWrapMode.Repeat; Log("Texture in Unity created"); NativeSetTextureFromUnity(textureToUpdate.GetNativeTexturePtr(), textureToUpdate.width, textureToUpdate.height); Log("NativeSetTextureFromUnity already called"); CallOnEvent(NexPlayerEvent.NEXPLAYER_EVENT_TEXTURE_CHANGED, widthTexture, heightTexture); Log("CallOnEvent(NexPlayerEvent.NEXPLAYER_EVENT_TEXTURE_CHANGED done"); } } break; case NEXPLAYER_EVENT_ENDED: { statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_PAUSED; CallOnEvent(NexPlayerEvent.NEXPLAYER_EVENT_END_OF_CONTENT, param1, param2); } break; case NEXPLAYER_EVENT_PLAYING: { statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_PLAYING; CallOnEvent(NexPlayerEvent.NEXPLAYER_EVENT_PLAYBACK_STARTED, param1, param2); } break; case NEXPLAYER_EVENT_PAUSE: { statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_PAUSED; CallOnEvent(NexPlayerEvent.NEXPLAYER_EVENT_PLAYBACK_PAUSED, param1, param2); } break; case NEXPLAYER_EVENT_TIMEUPDATE: { CallOnEvent(NexPlayerEvent.NEXPLAYER_EVENT_ON_TIME, param1, param2); } break; case NEXPLAYER_EVENT_BUFFERINGSTARTED: { statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_BUFFERING; CallOnEvent(NexPlayerEvent.NEXPLAYER_EVENT_BUFFERING_STARTED, param1, param2); } break; case NEXPLAYER_EVENT_BUFFERINGENDED: { if (!isPausedBeforeSeek) { statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_PLAYING; } else { statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_PAUSED; } CallOnEvent(NexPlayerEvent.NEXPLAYER_EVENT_BUFFERING_ENDED, param1, param2); } break; case NEXPLAYER_EVENT_FORMATCHANGE: CallOnEvent(NexPlayerEvent.NEXPLAYER_EVENT_TRACK_CHANGED, param1, param2); break; // Otherwise it won't be called in some .mp4 online videos case NEXPLAYER_EVENT_FIRSTFRAMEREADY: CallOnEvent(NexPlayerEvent.NEXPLAYER_EVENT_TRACK_CHANGED, param1, param2); break; case NEXPLAYER_EVENT_ERROR: { Log("NEXPLAYER_EVENT_ERROR internal error. param1: " + param1 + ", param2: " + param2); statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_CLOSED; int errorCode = (int)NexPlayerError.NEXPLAYER_ERROR_GENERAL; if (param1 == 4) { errorCode = (int)NexPlayerError.NEXPLAYER_ERROR_SRC_NOT_FOUND; } CallOnEvent(NexPlayerEvent.NEXPLAYER_EVENT_ERROR, errorCode, param2); NativeShutdown(); } break; default: break; } } }
public override void Stop() { NativeShutdown(); statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_CLOSED; GetStatusPlayer(); }
public override void StartPlayBack() { NativeStartPlayBack(); statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_PLAYING; GetStatusPlayer(); }
private void ProcessCallBack(int paramEvent, int param1, int param2) { Log("paramEvent: " + paramEvent + ", param1: " + param1 + ", param2: " + param2); switch (paramEvent) { // Only used for DASH case NEXPLAYER_EVENT_TRACK_CHANGED: ChangeSizeTexture(); break; case NEXPLAYER_EVENT_INIT_COMPLEATE: { if (statusPlayer == NexPlayerStatus.NEXPLAYER_STATUS_CLOSED) // It's the first time it's closed { statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_OPENED; OnEvent(NexPlayerEvent.NEXPLAYER_EVENT_INIT_COMPLEATE, param1, param2); } } break; case NEXPLAYER_EVENT_END_OF_CONTENT: statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_PAUSED; OnEvent(NexPlayerEvent.NEXPLAYER_EVENT_END_OF_CONTENT, param1, param2); break; case NEXPLAYER_EVENT_ON_TIME: OnEvent(NexPlayerEvent.NEXPLAYER_EVENT_ON_TIME, param1, 0); break; case NEXPLAYER_EVENT_PLAYBACK_STARTED: { if (statusPlayer == NexPlayerStatus.NEXPLAYER_STATUS_CLOSED) { // This is being called before the init callback ProcessCallBack(NEXPLAYER_EVENT_INIT_COMPLEATE, 0, 0); } statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_PLAYING; OnEvent(NexPlayerEvent.NEXPLAYER_EVENT_PLAYBACK_STARTED, param1, param2); } break; case NEXPLAYER_EVENT_BUFFERING_STARTED: statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_BUFFERING; OnEvent(NexPlayerEvent.NEXPLAYER_EVENT_BUFFERING_STARTED, param1, param2); break; case NEXPLAYER_EVENT_BUFFERING_ENDED: { if (pausedBeforeSeeking) { statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_PAUSED; } else { statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_PLAYING; } OnEvent(NexPlayerEvent.NEXPLAYER_EVENT_BUFFERING_ENDED, param1, param2); } break; case NEXPLAYER_EVENT_TEXTURE_CHANGED: OnEvent(NexPlayerEvent.NEXPLAYER_EVENT_TEXTURE_CHANGED, param1, param2); break; case NEXPLAYER_EVENT_PLAYBACK_PAUSED: statusPlayer = NexPlayerStatus.NEXPLAYER_STATUS_PAUSED; OnEvent(NexPlayerEvent.NEXPLAYER_EVENT_PLAYBACK_PAUSED, param1, param2); break; case NEXPLAYER_EVENT_ERROR: { Log("NEXPLAYER_EVENT_ERROR internal error. param1: " + param1 + ", param2: " + param2); int errorCode = (int)NexPlayerError.NEXPLAYER_ERROR_GENERAL; if (param1 == 4) { errorCode = (int)NexPlayerError.NEXPLAYER_ERROR_SRC_NOT_FOUND; } OnEvent(NexPlayerEvent.NEXPLAYER_EVENT_ERROR, errorCode, param2); } break; default: break; } }