android.view.Surface#isValid ( )源码实例Demo

下面列出了android.view.Surface#isValid ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: MediaSDK   文件: SimpleExoPlayer.java
@Override
public void setVideoSurfaceHolder(@Nullable SurfaceHolder surfaceHolder) {
  verifyApplicationThread();
  removeSurfaceCallbacks();
  if (surfaceHolder != null) {
    clearVideoDecoderOutputBufferRenderer();
  }
  this.surfaceHolder = surfaceHolder;
  if (surfaceHolder == null) {
    setVideoSurfaceInternal(null, /* ownsSurface= */ false);
    maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
  } else {
    surfaceHolder.addCallback(componentListener);
    Surface surface = surfaceHolder.getSurface();
    if (surface != null && surface.isValid()) {
      setVideoSurfaceInternal(surface, /* ownsSurface= */ false);
      Rect surfaceSize = surfaceHolder.getSurfaceFrame();
      maybeNotifySurfaceSizeChanged(surfaceSize.width(), surfaceSize.height());
    } else {
      setVideoSurfaceInternal(/* surface= */ null, /* ownsSurface= */ false);
      maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
    }
  }
}
 
源代码2 项目: android_9.0.0_r45   文件: RequestThreadManager.java
private void resetJpegSurfaceFormats(Collection<Surface> surfaces) {
    if (!USE_BLOB_FORMAT_OVERRIDE || surfaces == null) {
        return;
    }
    for(Surface s : surfaces) {
        if (s == null || !s.isValid()) {
            Log.w(TAG, "Jpeg surface is invalid, skipping...");
            continue;
        }
        try {
            LegacyCameraDevice.setSurfaceFormat(s, LegacyMetadataMapper.HAL_PIXEL_FORMAT_BLOB);
        } catch (LegacyExceptionUtils.BufferQueueAbandonedException e) {
            Log.w(TAG, "Surface abandoned, skipping...", e);
        }
    }
}
 
源代码3 项目: TelePlus-Android   文件: SimpleExoPlayer.java
@Override
public void setVideoSurfaceHolder(SurfaceHolder surfaceHolder) {
  removeSurfaceCallbacks();
  this.surfaceHolder = surfaceHolder;
  if (surfaceHolder == null) {
    setVideoSurfaceInternal(null, false);
    maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
  } else {
    surfaceHolder.addCallback(componentListener);
    Surface surface = surfaceHolder.getSurface();
    if (surface != null && surface.isValid()) {
      setVideoSurfaceInternal(surface, /* ownsSurface= */ false);
      Rect surfaceSize = surfaceHolder.getSurfaceFrame();
      maybeNotifySurfaceSizeChanged(surfaceSize.width(), surfaceSize.height());
    } else {
      setVideoSurfaceInternal(/* surface= */ null, /* ownsSurface= */ false);
      maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
    }
  }
}
 
源代码4 项目: TelePlus-Android   文件: SimpleExoPlayer.java
@Override
public void setVideoSurfaceHolder(SurfaceHolder surfaceHolder) {
  removeSurfaceCallbacks();
  this.surfaceHolder = surfaceHolder;
  if (surfaceHolder == null) {
    setVideoSurfaceInternal(null, false);
    maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
  } else {
    surfaceHolder.addCallback(componentListener);
    Surface surface = surfaceHolder.getSurface();
    if (surface != null && surface.isValid()) {
      setVideoSurfaceInternal(surface, /* ownsSurface= */ false);
      Rect surfaceSize = surfaceHolder.getSurfaceFrame();
      maybeNotifySurfaceSizeChanged(surfaceSize.width(), surfaceSize.height());
    } else {
      setVideoSurfaceInternal(/* surface= */ null, /* ownsSurface= */ false);
      maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
    }
  }
}
 
源代码5 项目: android-tv-leanback   文件: PlayerActivity.java
private void maybeStartPlayback() {
    Log.d(TAG, "maybeStartPlayback");
    Surface surface = surfaceView.getHolder().getSurface();
    if (videoRenderer == null || surface == null || !surface.isValid()) {
        // We're not ready yet.
        return;
    }
    player.sendMessage(videoRenderer, MediaCodecVideoTrackRenderer.MSG_SET_SURFACE, surface);
    if (autoPlay) {
        if (mIsOnTv) {
            // This will update the player controls and the activity will receive the callback
            // OnPlayPauseClickedListener.onFragmentPlayPause(Video, int, Boolean)
            mPlaybackOverlayFragment.pressPlay();
        } else {
            player.setPlayWhenReady(true);
        }
        autoPlay = false;
    }
}
 
源代码6 项目: GSYVideoPlayer   文件: SystemPlayerManager.java
@Override
public void showDisplay(Message msg) {
    if (msg.obj == null && mediaPlayer != null && !release) {
        mediaPlayer.setSurface(null);
    } else if (msg.obj != null) {
        Surface holder = (Surface) msg.obj;
        surface = holder;
        if (mediaPlayer != null && holder.isValid() && !release) {
            mediaPlayer.setSurface(holder);
        }
        if (!isPlaying) {
            pause();
        }
    }
}
 
源代码7 项目: android-tv-leanback   文件: PlayerActivity.java
private void maybeStartPlayback() {
    Log.d(TAG, "maybeStartPlayback");
    Surface surface = surfaceView.getHolder().getSurface();
    if (videoRenderer == null || surface == null || !surface.isValid()) {
        // We're not ready yet.
        return;
    }
    player.sendMessage(videoRenderer, MediaCodecVideoTrackRenderer.MSG_SET_SURFACE, surface);
    if (autoPlay) {
        player.setPlayWhenReady(true);
        autoPlay = false;
    }
}
 
源代码8 项目: VCL-Android   文件: AWindow.java
private void setSurface(Surface surface) {
    if (surface.isValid() && getNativeSurface(mId) == null) {
        mSurface = surface;
        setNativeSurface(mId, mSurface);
        onSurfaceCreated();
    }
}
 
源代码9 项目: XPlayer2   文件: XMediaPlayer.java
@Override
public void setSurface(Surface surface) {
    if (mMediaPlayer != null) {
        if (surface != null && surface.isValid()) {
            mSurface = surface;
            mMediaPlayer.setSurface(surface);
        }
    }
}
 
源代码10 项目: libvlc-android-sdk   文件: AWindow.java
private void setSurface(Surface surface) {
    if (surface.isValid() && getNativeSurface(mId) == null) {
        mSurface = surface;
        setNativeSurface(mId, mSurface);
        onSurfaceCreated();
    }
}
 
源代码11 项目: VCL-Android   文件: AWindow.java
private void setSurface(int id, Surface surface, SurfaceHolder surfaceHolder) {
    ensureInitState();
    if (!surface.isValid() || surfaceHolder == null)
        throw new IllegalStateException("surface is not attached and holder is null");
    final SurfaceHelper surfaceHelper = mSurfaceHelpers[id];
    if (surfaceHelper != null)
        surfaceHelper.release();

    mSurfaceHelpers[id] = new SurfaceHelper(id, surface, surfaceHolder);
}
 
源代码12 项目: GSYVideoPlayer   文件: IjkExo2MediaPlayer.java
@Override
public void setSurface(Surface surface) {
    mSurface = surface;
    if (mInternalPlayer != null) {
        if (surface != null && !surface.isValid()) {
            mSurface = null;
        }
        mInternalPlayer.setVideoSurface(surface);
    }
}
 
源代码13 项目: grafika   文件: MultiSurfaceActivity.java
private void startBouncing() {
    final Surface surface = mSurfaceView2.getHolder().getSurface();
    if (surface == null || !surface.isValid()) {
        Log.w(TAG, "mSurfaceView2 is not ready");
        return;
    }
    mBounceThread = new Thread() {
        @Override
        public void run() {
            while (true) {
                long startWhen = System.nanoTime();
                for (int i = 0; i < BOUNCE_STEPS; i++) {
                    if (!mBouncing) return;
                    drawBouncingCircle(surface, i);
                }
                for (int i = BOUNCE_STEPS; i > 0; i--) {
                    if (!mBouncing) return;
                    drawBouncingCircle(surface, i);
                }
                long duration = System.nanoTime() - startWhen;
                double framesPerSec = 1000000000.0 / (duration / (BOUNCE_STEPS * 2.0));
                Log.d(TAG, "Bouncing at " + framesPerSec + " fps");
            }
        }
    };
    mBouncing = true;
    mBounceThread.setName("Bouncer");
    mBounceThread.start();
}
 
源代码14 项目: android-tv-leanback   文件: PlayerActivity.java
private void maybeStartPlayback() {
    Log.d(TAG, "maybeStartPlayback");
    Surface surface = surfaceView.getHolder().getSurface();
    if (videoRenderer == null || surface == null || !surface.isValid()) {
        // We're not ready yet.
        return;
    }
    player.sendMessage(videoRenderer, MediaCodecVideoTrackRenderer.MSG_SET_SURFACE, surface);
    if (autoPlay) {
        player.setPlayWhenReady(true);
        autoPlay = false;
    }
}
 
private void startBouncing() {
    final Surface surface = mSurfaceView2.getHolder().getSurface();
    if (surface == null || !surface.isValid()) {
        Log.w(TAG, "mSurfaceView2 is not ready");
        return;
    }
    mBounceThread = new Thread() {
        @Override
        public void run() {
            while (true) {
                long startWhen = System.nanoTime();
                for (int i = 0; i < BOUNCE_STEPS; i++) {
                    if (!mBouncing) return;
                    drawBouncingCircle(surface, i);
                }
                for (int i = BOUNCE_STEPS; i > 0; i--) {
                    if (!mBouncing) return;
                    drawBouncingCircle(surface, i);
                }
                long duration = System.nanoTime() - startWhen;
                double framesPerSec = 1000000000.0 / (duration / (BOUNCE_STEPS * 2.0));
                Log.d(TAG, "Bouncing at " + framesPerSec + " fps");
            }
        }
    };
    mBouncing = true;
    mBounceThread.setName("Bouncer");
    mBounceThread.start();
}
 
源代码16 项目: OTTLivePlayer_vlc   文件: AWindow.java
private void setSurface(int id, Surface surface, SurfaceHolder surfaceHolder) {
    ensureInitState();
    if (!surface.isValid() && surfaceHolder == null)
        throw new IllegalStateException("surface is not attached and holder is null");
    final SurfaceHelper surfaceHelper = mSurfaceHelpers[id];
    if (surfaceHelper != null)
        surfaceHelper.release();

    mSurfaceHelpers[id] = new SurfaceHelper(id, surface, surfaceHolder);
}
 
源代码17 项目: vlc-example-streamplayer   文件: AWindow.java
private void setSurface(Surface surface) {
    if (surface.isValid() && getNativeSurface(mId) == null) {
        mSurface = surface;
        setNativeSurface(mId, mSurface);
        onSurfaceCreated();
    }
}
 
源代码18 项目: android-tv-leanback   文件: PlayerActivity.java
private void maybeStartPlayback() {
    Log.d(TAG, "maybeStartPlayback");
    Surface surface = surfaceView.getHolder().getSurface();
    if (videoRenderer == null || surface == null || !surface.isValid()) {
        // We're not ready yet.
        return;
    }
    player.sendMessage(videoRenderer, MediaCodecVideoTrackRenderer.MSG_SET_SURFACE, surface);
    if (autoPlay) {
        player.setPlayWhenReady(true);
        autoPlay = false;
    }
}
 
源代码19 项目: libvlc-sdk-android   文件: AWindow.java
private void setSurface(int id, Surface surface, SurfaceHolder surfaceHolder) {
    ensureInitState();
    if (!surface.isValid() && surfaceHolder == null)
        throw new IllegalStateException("surface is not attached and holder is null");
    final SurfaceHelper surfaceHelper = mSurfaceHelpers[id];
    if (surfaceHelper != null)
        surfaceHelper.release();

    mSurfaceHelpers[id] = new SurfaceHelper(id, surface, surfaceHolder);
}
 
源代码20 项目: MediaSDK   文件: MediaCodecVideoRenderer.java
public VideoDecoderException(
    Throwable cause, @Nullable MediaCodecInfo codecInfo, @Nullable Surface surface) {
  super(cause, codecInfo);
  surfaceIdentityHashCode = System.identityHashCode(surface);
  isSurfaceValid = surface == null || surface.isValid();
}