android.view.TextureView#getSurfaceTexture ( )源码实例Demo

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

源代码1 项目: MediaSDK   文件: SimpleExoPlayer.java
@Override
public void setVideoTextureView(@Nullable TextureView textureView) {
  verifyApplicationThread();
  removeSurfaceCallbacks();
  if (textureView != null) {
    clearVideoDecoderOutputBufferRenderer();
  }
  this.textureView = textureView;
  if (textureView == null) {
    setVideoSurfaceInternal(/* surface= */ null, /* ownsSurface= */ true);
    maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
  } else {
    if (textureView.getSurfaceTextureListener() != null) {
      Log.w(TAG, "Replacing existing SurfaceTextureListener.");
    }
    textureView.setSurfaceTextureListener(componentListener);
    SurfaceTexture surfaceTexture =
        textureView.isAvailable() ? textureView.getSurfaceTexture() : null;
    if (surfaceTexture == null) {
      setVideoSurfaceInternal(/* surface= */ null, /* ownsSurface= */ true);
      maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
    } else {
      setVideoSurfaceInternal(new Surface(surfaceTexture), /* ownsSurface= */ true);
      maybeNotifySurfaceSizeChanged(textureView.getWidth(), textureView.getHeight());
    }
  }
}
 
源代码2 项目: TelePlus-Android   文件: SimpleExoPlayer.java
@Override
public void setVideoTextureView(TextureView textureView) {
  if (this.textureView == textureView) {
    return;
  }
  removeSurfaceCallbacks();
  this.textureView = textureView;
  needSetSurface = true;
  if (textureView == null) {
    setVideoSurfaceInternal(null, true);
    maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
  } else {
    if (textureView.getSurfaceTextureListener() != null) {
      Log.w(TAG, "Replacing existing SurfaceTextureListener.");
    }
    textureView.setSurfaceTextureListener(componentListener);
    SurfaceTexture surfaceTexture = textureView.isAvailable() ? textureView.getSurfaceTexture()
        : null;
    if (surfaceTexture == null) {
      setVideoSurfaceInternal(/* surface= */ null, /* ownsSurface= */ true);
      maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
    } else {
      setVideoSurfaceInternal(new Surface(surfaceTexture), /* ownsSurface= */ true);
      maybeNotifySurfaceSizeChanged(textureView.getWidth(), textureView.getHeight());
    }
  }
}
 
源代码3 项目: TelePlus-Android   文件: SimpleExoPlayer.java
@Override
public void setVideoTextureView(TextureView textureView) {
  if (this.textureView == textureView) {
    return;
  }
  removeSurfaceCallbacks();
  this.textureView = textureView;
  needSetSurface = true;
  if (textureView == null) {
    setVideoSurfaceInternal(null, true);
    maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
  } else {
    if (textureView.getSurfaceTextureListener() != null) {
      Log.w(TAG, "Replacing existing SurfaceTextureListener.");
    }
    textureView.setSurfaceTextureListener(componentListener);
    SurfaceTexture surfaceTexture = textureView.isAvailable() ? textureView.getSurfaceTexture()
        : null;
    if (surfaceTexture == null) {
      setVideoSurfaceInternal(/* surface= */ null, /* ownsSurface= */ true);
      maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
    } else {
      setVideoSurfaceInternal(new Surface(surfaceTexture), /* ownsSurface= */ true);
      maybeNotifySurfaceSizeChanged(textureView.getWidth(), textureView.getHeight());
    }
  }
}
 
源代码4 项目: K-Sonic   文件: SimpleExoPlayer.java
/**
 * Sets the {@link TextureView} onto which video will be rendered. The player will track the
 * lifecycle of the surface automatically.
 *
 * @param textureView The texture view.
 */
public void setVideoTextureView(TextureView textureView) {
  removeSurfaceCallbacks();
  this.textureView = textureView;
  if (textureView == null) {
    setVideoSurfaceInternal(null, true);
  } else {
    if (textureView.getSurfaceTextureListener() != null) {
      Log.w(TAG, "Replacing existing SurfaceTextureListener.");
    }
    SurfaceTexture surfaceTexture = textureView.getSurfaceTexture();
    setVideoSurfaceInternal(surfaceTexture == null ? null : new Surface(surfaceTexture), true);
    textureView.setSurfaceTextureListener(componentListener);
  }
}
 
源代码5 项目: openwebrtc-android-sdk   文件: VideoViewImpl.java
private TextureViewTagger(String tag, TextureView textureView) {
    mTag = tag;
    mTextureView = textureView;
    if (textureView.isAvailable()) {
        Surface surface = new Surface(textureView.getSurfaceTexture());
        WindowRegistry.get().register(mTag, surface);
    }
    mTextureView.setSurfaceTextureListener(this);
}
 
源代码6 项目: Telegram-FOSS   文件: SimpleExoPlayer.java
@Override
public void setVideoTextureView(TextureView textureView) {
  if (this.textureView == textureView) {
    return;
  }
  verifyApplicationThread();
  removeSurfaceCallbacks();
  this.textureView = textureView;
  needSetSurface = true;
  if (textureView == null) {
    setVideoSurfaceInternal(null, true);
    maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
  } else {
    if (textureView.getSurfaceTextureListener() != null) {
      Log.w(TAG, "Replacing existing SurfaceTextureListener.");
    }
    textureView.setSurfaceTextureListener(componentListener);
    SurfaceTexture surfaceTexture = textureView.isAvailable() ? textureView.getSurfaceTexture()
        : null;
    if (surfaceTexture == null) {
      setVideoSurfaceInternal(/* surface= */ null, /* ownsSurface= */ true);
      maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
    } else {
      setVideoSurfaceInternal(new Surface(surfaceTexture), /* ownsSurface= */ true);
      maybeNotifySurfaceSizeChanged(textureView.getWidth(), textureView.getHeight());
    }
  }
}
 
源代码7 项目: Telegram   文件: SimpleExoPlayer.java
@Override
public void setVideoTextureView(TextureView textureView) {
  if (this.textureView == textureView) {
    return;
  }
  verifyApplicationThread();
  removeSurfaceCallbacks();
  this.textureView = textureView;
  needSetSurface = true;
  if (textureView == null) {
    setVideoSurfaceInternal(null, true);
    maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
  } else {
    if (textureView.getSurfaceTextureListener() != null) {
      Log.w(TAG, "Replacing existing SurfaceTextureListener.");
    }
    textureView.setSurfaceTextureListener(componentListener);
    SurfaceTexture surfaceTexture = textureView.isAvailable() ? textureView.getSurfaceTexture()
        : null;
    if (surfaceTexture == null) {
      setVideoSurfaceInternal(/* surface= */ null, /* ownsSurface= */ true);
      maybeNotifySurfaceSizeChanged(/* width= */ 0, /* height= */ 0);
    } else {
      setVideoSurfaceInternal(new Surface(surfaceTexture), /* ownsSurface= */ true);
      maybeNotifySurfaceSizeChanged(textureView.getWidth(), textureView.getHeight());
    }
  }
}
 
源代码8 项目: iGap-Android   文件: FragmentShowImage.java
private void setMediaPlayer(MediaPlayer mMediaPlayer, final TextureView mTextureView, final ImageView imgPlay, final TouchImageView touchImageView) {

            if (mTextureView == null) {
                return;
            }
            Surface surfaceTexture = new Surface(mTextureView.getSurfaceTexture());

            if (surfaceTexture == null) {
                return;
            }

            try {
                if (mMediaPlayer != null) {
                    mMediaPlayer.setSurface(surfaceTexture);
                    mMediaPlayer.setLooping(false);
                    mMediaPlayer.prepareAsync();
                }
            } catch (IllegalStateException e) {
                e.getMessage();
            }


            mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {

                    getRealSize(mp, mTextureView);
                    imgPlay.setVisibility(View.GONE);
                    mp.start();
                    MusicPlayer.pauseSound();
                    mTextureView.setVisibility(View.VISIBLE);
                    touchImageView.animate().setDuration(700).alpha(0F).start();

                    G.handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            touchImageView.setVisibility(View.GONE);
                            touchImageView.clearAnimation();
                        }
                    }, 700);

                    videoController.setEnabled(true);
                    videoController.show();
                }
            });

        }
 
源代码9 项目: DeviceConnect-Android   文件: UVCDevice.java
public void setPreviewDisplay(final TextureView display) {
    Surface surface = new Surface(display.getSurfaceTexture());
    mCamera.setPreviewDisplay(surface);
}