internal LocalPlayer(PlayerController controller, Uri content, Uri subtitlesUri, SurfaceView videoView) { mController = controller; // Create and initialize Android MediaPlayer instance. mPlayer = new MediaPlayer(); mPlayer.OnCompletionListener = this; mSurfaceHolder = videoView.Holder; mSurfaceHolder.addCallback(this); bool isSurfaceValid = mSurfaceHolder.Surface.Valid; if (isSurfaceValid) { mPlayer.Display = mSurfaceHolder; } try { mPlayer.setDataSource(controller.mContext, content); mPlayer.prepare(); if (subtitlesUri != null) { mPlayer.addTimedTextSource(subtitlesUri.Path, MediaPlayer.MEDIA_MIMETYPE_TEXT_SUBRIP); mPlayer.OnTimedTextListener = this; } controller.Duration = mPlayer.Duration / 1000; } catch (IOException ignored) { Log.e("VideoPlayer", ignored.Message); } }
internal RemotePlayer(PlayerController controller, Uri contentUri, Uri subtitlesUri, string mimeType, string deviceId, int deviceType) { mController = controller; mContentUri = contentUri; mSubtitlesUri = subtitlesUri; mMimeType = mimeType; mDeviceId = deviceId; mDeviceType = deviceType; // Connects to AllShare Service. Processing continues when // service instance is received in onCreated callback method. // Connect to AllShare Service. Processing continues when // service instance is received in onCreated callback method. SmcDeviceFinder df = new SmcDeviceFinder(controller.mContext); df.StatusListener = this; df.start(); }