下面列出了android.view.TextureView#SurfaceTextureListener ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void openCamera(String cameraId, final CameraOpenListener<String, TextureView.SurfaceTextureListener> cameraOpenListener) {
this.currentCameraId = cameraId;
this.cameraOpenListener = cameraOpenListener;
backgroundHandler.post(new Runnable() {
@Override
public void run() {
if (context == null || configurationProvider == null) {
if (cameraOpenListener != null) {
uiHandler.post(new Runnable() {
@Override
public void run() {
cameraOpenListener.onCameraOpenError();
}
});
}
return;
}
prepareCameraOutputs();
try {
manager.openCamera(currentCameraId, stateCallback, backgroundHandler);
} catch (Exception e) {
if (cameraOpenListener != null) {
uiHandler.post(new Runnable() {
@Override
public void run() {
cameraOpenListener.onCameraOpenError();
}
});
}
}
}
});
}
public static void waitForNUpdates(final TextureView textureView, int count) {
TextureView.SurfaceTextureListener previousListener = textureView.getSurfaceTextureListener();
final TextureViewAsserter textureViewAsserter = new TextureViewAsserter(previousListener);
textureView.setSurfaceTextureListener(textureViewAsserter);
TestUtils.synchronous().latchCount(count).timeout(15).run(new TestUtils.SynchronousBlock() {
@Override
public void run(final CountDownLatch latch) {
textureViewAsserter.waitForUpdates(latch);
}
});
textureView.setSurfaceTextureListener(previousListener);
}
public void setupSurfaceTexureListener() {
if (mSurfaceTextureListener != null)
return;
mSurfaceTextureListener = new TextureView.SurfaceTextureListener() {
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture,
int width, int height) {
Log.d(TAG, "onSurfaceTextureAvailable() about to open the camera with width,height "
+ String.valueOf(width) + "," + String.valueOf(height));
mCamera.openCamera(width, height);
}
@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture,
int width, int height) {
Log.d(TAG, "onSurfaceTextureSizeChanged() width width,height "
+ String.valueOf(width) + "," + String.valueOf(height));
mCamera.configureTransform(width, height);
}
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
Log.d(TAG, "onSurfaceTextureDestroyed() ");
return true;
}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
Log.d(TAG, "onSurfaceTextureUpdated() ");
}
};
}
public void setSurfaceTextureListener(TextureView.SurfaceTextureListener listener)
{
mSurfaceTextureListener = listener;
}
public InnerSurfaceTextureListener(TextureView.SurfaceTextureListener surfaceTextureListener){
this.surfaceTextureListener = surfaceTextureListener;
}
@Override
public void onCameraOpened(String openedCameraId, Size previewSize, TextureView.SurfaceTextureListener surfaceTextureListener) {
mCameraView.updateUiForMediaAction(CameraConfig.MEDIA_ACTION_UNSPECIFIED);
mCameraView.updateCameraPreview(previewSize, new AutoFitTextureView(mContext, surfaceTextureListener));
mCameraView.updateCameraSwitcher(mCamera2Manager.getNumberOfCameras());
}
@Override
public void onCameraOpened(String openedCameraId, Size previewSize, TextureView.SurfaceTextureListener surfaceTextureListener) {
cameraView.updateUiForMediaAction(Configuration.MEDIA_ACTION_UNSPECIFIED);
cameraView.updateCameraPreview(previewSize, new AutoFitTextureView(context, surfaceTextureListener));
cameraView.updateCameraSwitcher(camera2Manager.getNumberOfCameras());
}
public AutoFitTextureView(Context context, TextureView.SurfaceTextureListener surfaceTextureListener) {
super(context, null);
setSurfaceTextureListener(surfaceTextureListener);
}
@Override
public void onCameraOpened(String openedCameraId, Size previewSize, TextureView.SurfaceTextureListener surfaceTextureListener) {
cameraView.updateUiForMediaAction(CameraConfiguration.MEDIA_ACTION_BOTH);
cameraView.updateCameraPreview(previewSize, new AutoFitTextureView(cameraView.getActivity(), surfaceTextureListener));
cameraView.updateCameraSwitcher(camera2Manager.getNumberOfCameras());
}
public AutoFitTextureView(Context context, TextureView.SurfaceTextureListener surfaceTextureListener) {
super(context, null);
setSurfaceTextureListener(surfaceTextureListener);
}
public TextureViewAsserter(final TextureView.SurfaceTextureListener surfaceTextureListener) {
mListener = surfaceTextureListener;
}
public static Void surfaceTextureListener(TextureView.SurfaceTextureListener arg) {
return BaseDSL.attr("surfaceTextureListener", arg);
}