Java 类android.graphics.SurfaceTexture 实例源码

项目:ListVideoPlayer    文件:MediaManager.java   
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i1) {
    Log.i(TAG, "onSurfaceTextureAvailable [" + this.hashCode() + "] ");
    if (savedSurfaceTexture == null) {
        savedSurfaceTexture = surfaceTexture;
        prepare();
    } else {
        textureView.setSurfaceTexture(savedSurfaceTexture);
    }
}
项目:TK_1701    文件:Camera2.java   
public void open() {
    try {
        CameraManager manager = (CameraManager) mActivity.getSystemService(Context.CAMERA_SERVICE);
        for (String cameraId : manager.getCameraIdList()) {
            CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId);
            if (characteristics.get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_BACK) {
                StreamConfigurationMap map = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
                mCameraSize = map.getOutputSizes(SurfaceTexture.class)[0];

                HandlerThread thread = new HandlerThread("OpenCamera");
                thread.start();
                Handler backgroundHandler = new Handler(thread.getLooper());

                manager.openCamera(cameraId, mCameraDeviceCallback, null);

                // カメラの物理的な情報を得る
                mCameraCharacteristics = manager.getCameraCharacteristics( cameraId );
                return;
            }
        }
    } catch (CameraAccessException e) {
        e.printStackTrace();
    }
}
项目:VideoCRE    文件:Camera2Session.java   
@Override
public void onOpened(CameraDevice camera) {
  checkIsOnCameraThread();

  Logging.d(TAG, "Camera opened.");
  cameraDevice = camera;

  final SurfaceTexture surfaceTexture = surfaceTextureHelper.getSurfaceTexture();
  surfaceTexture.setDefaultBufferSize(captureFormat.width, captureFormat.height);
  surface = new Surface(surfaceTexture);
  List<Surface> surfaces = new ArrayList<Surface>();
  surfaces.add(surface);
  if (mediaRecorderSurface != null) {
    Logging.d(TAG, "Add MediaRecorder surface to capture session.");
    surfaces.add(mediaRecorderSurface);
  }
  try {
    camera.createCaptureSession(surfaces, new CaptureSessionCallback(), cameraThreadHandler);
  } catch (CameraAccessException e) {
    reportError("Failed to create capture session. " + e);
    return;
  }
}
项目:AAVT    文件:Mp4Provider.java   
@Override
public Point open(SurfaceTexture surface) {
    try {
        if(!extractMedia()){
            return new Point(0,0);
        }
        mFrameSem=new Semaphore(0);
        mDecodeSem=new Semaphore(1);
        videoProvideEndFlag=false;
        isUserWantToStop=false;
        mAudioEncodeTrack=mStore.addTrack(mExtractor.getTrackFormat(mAudioDecodeTrack));
        MediaFormat format=mExtractor.getTrackFormat(mVideoDecodeTrack);
        mVideoDecoder = MediaCodec.createDecoderByType(format.getString(MediaFormat.KEY_MIME));
        mVideoDecoder.configure(format,new Surface(surface),null,0);
        mVideoDecoder.start();
        startDecodeThread();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return mVideoSize;
}
项目:GestureVideoView    文件:TextureRenderView.java   
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void bindToMediaPlayer(IMediaPlayer mp) {
    if (mp == null)
        return;

    if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) &&
            (mp instanceof ISurfaceTextureHolder)) {
        ISurfaceTextureHolder textureHolder = (ISurfaceTextureHolder) mp;
        mTextureView.mSurfaceCallback.setOwnSurfaceTexture(false);

        SurfaceTexture surfaceTexture = textureHolder.getSurfaceTexture();
        if (surfaceTexture != null) {
            mTextureView.setSurfaceTexture(surfaceTexture);
        } else {
            textureHolder.setSurfaceTexture(mSurfaceTexture);
            textureHolder.setSurfaceTextureHost(mTextureView.mSurfaceCallback);
        }
    } else {
        mp.setSurface(openSurface());
    }
}
项目:ShaddockVideoPlayer    文件:TextureRenderView.java   
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void bindToMediaPlayer(IMediaPlayer mp) {
    if (mp == null)
        return;

    if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) &&
            (mp instanceof ISurfaceTextureHolder)) {
        ISurfaceTextureHolder textureHolder = (ISurfaceTextureHolder) mp;
        mTextureView.mSurfaceCallback.setOwnSurfaceTexture(false);

        SurfaceTexture surfaceTexture = textureHolder.getSurfaceTexture();
        if (surfaceTexture != null) {
            mTextureView.setSurfaceTexture(surfaceTexture);
        } else {
            textureHolder.setSurfaceTexture(mSurfaceTexture);
            textureHolder.setSurfaceTextureHost(mTextureView.mSurfaceCallback);
        }
    } else {
        mp.setSurface(openSurface());
    }
}
项目:EZFilter    文件:EGLEnvironment.java   
EglSurface(final EGLEnvironment egl, final Object surface) {
    if (!(surface instanceof SurfaceView)
            && !(surface instanceof Surface)
            && !(surface instanceof SurfaceHolder)
            && !(surface instanceof SurfaceTexture))
        throw new IllegalArgumentException("unsupported surface");
    mEgl = egl;
    mEglSurface = mEgl.createWindowSurface(surface);
    mWidth = mEgl.querySurface(mEglSurface, EGL14.EGL_WIDTH);
    mHeight = mEgl.querySurface(mEglSurface, EGL14.EGL_HEIGHT);
}
项目:NSMPlayer-Android    文件:TextureRenderView.java   
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
    mSurfaceTexture = surface;
    mIsFormatChanged = false;
    mWidth = 0;
    mHeight = 0;

    ISurfaceHolder surfaceHolder = new InternalSurfaceHolder(mWeakRenderView.get(), surface);
    for (IRenderCallback renderCallback : mRenderCallbackMap.keySet()) {
        renderCallback.onSurfaceCreated(surfaceHolder, 0, 0);
    }
}
项目:OkayCamera-Android    文件:Camera2RawFragment.java   
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture texture) {
    synchronized (mCameraStateLock) {
        mPreviewSize = null;
    }
    return true;
}
项目:react-native-scan-doc    文件:CameraGLRendererBase.java   
private void initSurfaceTexture() {
    Log.d(LOGTAG, "initSurfaceTexture");
    deleteSurfaceTexture();
    initTexOES(texCamera);
    mSTexture = new SurfaceTexture(texCamera[0]);
    mSTexture.setOnFrameAvailableListener(this);
}
项目:BLPlayer    文件:TextureRenderView.java   
public InternalSurfaceHolder(@NonNull TextureRenderView textureView,
                             @Nullable SurfaceTexture surfaceTexture,
                             @NonNull ISurfaceTextureHost surfaceTextureHost) {
    mTextureView = textureView;
    mSurfaceTexture = surfaceTexture;
    mSurfaceTextureHost = surfaceTextureHost;
}
项目:EyeShopping    文件:CameraGLRendererBase.java   
private void initSurfaceTexture() {
    Log.d(LOGTAG, "initSurfaceTexture");
    deleteSurfaceTexture();
    initTexOES(texCamera);
    mSTexture = new SurfaceTexture(texCamera[0]);
    mSTexture.setOnFrameAvailableListener(this);
}
项目:Exoplayer2Radio    文件: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);
  }
}
项目:MediaCodecRecorder    文件:RecordingActivity.java   
@Override
public void onCameraSurfaceDestroy(SurfaceTexture surfaceTexture) {
    Log.d(TAG, "onCameraSurfaceDestroy");
    isSurfaceReady = false;
    mCamera.stopPreview();
    mCamera.release();
    if (mVideoRecorder.isRecording()) {
        mVideoRecorder.stop();
    }
}
项目:Team9261-2017-2018    文件:CameraGLRendererBase.java   
private void initSurfaceTexture() {
    Log.d(LOGTAG, "initSurfaceTexture");
    deleteSurfaceTexture();
    initTexOES(texCamera);
    mSTexture = new SurfaceTexture(texCamera[0]);
    mSTexture.setOnFrameAvailableListener(this);
}
项目:GitHub    文件:TextureRenderView.java   
@Override
public void releaseSurfaceTexture(SurfaceTexture surfaceTexture) {
    if (surfaceTexture == null) {
        Log.d(TAG, "releaseSurfaceTexture: null");
    } else if (mDidDetachFromWindow) {
        if (surfaceTexture != mSurfaceTexture) {
            Log.d(TAG, "releaseSurfaceTexture: didDetachFromWindow(): release different SurfaceTexture");
            surfaceTexture.release();
        } else if (!mOwnSurfaceTexture) {
            Log.d(TAG, "releaseSurfaceTexture: didDetachFromWindow(): release detached SurfaceTexture");
            surfaceTexture.release();
        } else {
            Log.d(TAG, "releaseSurfaceTexture: didDetachFromWindow(): already released by TextureView");
        }
    } else if (mWillDetachFromWindow) {
        if (surfaceTexture != mSurfaceTexture) {
            Log.d(TAG, "releaseSurfaceTexture: willDetachFromWindow(): release different SurfaceTexture");
            surfaceTexture.release();
        } else if (!mOwnSurfaceTexture) {
            Log.d(TAG, "releaseSurfaceTexture: willDetachFromWindow(): re-attach SurfaceTexture to TextureView");
            setOwnSurfaceTexture(true);
        } else {
            Log.d(TAG, "releaseSurfaceTexture: willDetachFromWindow(): will released by TextureView");
        }
    } else {
        if (surfaceTexture != mSurfaceTexture) {
            Log.d(TAG, "releaseSurfaceTexture: alive: release different SurfaceTexture");
            surfaceTexture.release();
        } else if (!mOwnSurfaceTexture) {
            Log.d(TAG, "releaseSurfaceTexture: alive: re-attach SurfaceTexture to TextureView");
            setOwnSurfaceTexture(true);
        } else {
            Log.d(TAG, "releaseSurfaceTexture: alive: will released by TextureView");
        }
    }
}
项目:PaoMovie    文件:CameraEngine.java   
public static void startPreview(SurfaceTexture surfaceTexture){
    try {
        mCamera.setPreviewTexture(surfaceTexture);
        mCamera.startPreview();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }   
}
项目:real_time_circle_detection_android    文件:CameraGLRendererBase.java   
private void initSurfaceTexture() {
    Log.d(LOGTAG, "initSurfaceTexture");
    deleteSurfaceTexture();
    initTexOES(texCamera);
    mSTexture = new SurfaceTexture(texCamera[0]);
    mSTexture.setOnFrameAvailableListener(this);
}
项目:mao-android    文件:VideoPlayFragment.java   
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
    GLES20.glClearColor(0.0f, 1.0f, 0.0f, 0.0f);
    GLES20.glDisable(GLES20.GL_DEPTH_TEST);
    mTexture = OpenGLUtils.genOesTexture();
    mGLImageView.setImageTexture(mTexture);

    mSurfaceTexture = new SurfaceTexture(mTexture);
    mSurfaceTexture.setOnFrameAvailableListener(this);
    mVideoPlayer.setOutSurface(new Surface(mSurfaceTexture));
}
项目:airgram    文件:VideoEditorActivity.java   
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
    if (videoPlayer == null) {
        return true;
    }
    videoPlayer.setDisplay(null);
    return true;
}
项目:BLPlayer    文件:TextureRenderView.java   
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
    mSurfaceTexture = surface;
    mIsFormatChanged = false;
    mWidth = 0;
    mHeight = 0;

    ISurfaceHolder surfaceHolder = new InternalSurfaceHolder(mWeakRenderView.get(), surface, this);
    for (IRenderCallback renderCallback : mRenderCallbackMap.keySet()) {
        renderCallback.onSurfaceDestroyed(surfaceHolder);
    }

    Log.d(TAG, "onSurfaceTextureDestroyed: destroy: " + mOwnSurfaceTexture);
    return mOwnSurfaceTexture;
}
项目:PlayerBase    文件:TextureRenderView.java   
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
    mSurfaceTexture = surface;
    mIsFormatChanged = false;
    mWidth = 0;
    mHeight = 0;

    ISurfaceHolder surfaceHolder = new InternalSurfaceHolder(mWeakRenderView.get(), surface, this);
    for (IRenderCallback renderCallback : mRenderCallbackMap.keySet()) {
        renderCallback.onSurfaceDestroyed(surfaceHolder);
    }

    Log.d(TAG, "onSurfaceTextureDestroyed: destroy: " + mOwnSurfaceTexture);
    return mOwnSurfaceTexture;
}
项目:AndroidTvDemo    文件:TextureRenderView.java   
@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height)
{
    mSurfaceTexture = surface;
    mIsFormatChanged = true;
    mWidth = width;
    mHeight = height;

    ISurfaceHolder surfaceHolder = new InternalSurfaceHolder(mWeakRenderView.get(), surface, this);
    for (IRenderCallback renderCallback : mRenderCallbackMap.keySet())
    {
        renderCallback.onSurfaceChanged(surfaceHolder, 0, width, height);
    }
}
项目:boohee_v5.6    文件:TextureRenderView.java   
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
    this.mSurfaceTexture = surface;
    this.mIsFormatChanged = false;
    this.mWidth = 0;
    this.mHeight = 0;
    ISurfaceHolder surfaceHolder = new InternalSurfaceHolder((TextureRenderView) this
            .mWeakRenderView.get(), surface, this);
    for (IRenderCallback renderCallback : this.mRenderCallbackMap.keySet()) {
        renderCallback.onSurfaceCreated(surfaceHolder, 0, 0);
    }
}
项目:MOAAP    文件:CameraGLRendererBase.java   
private void initSurfaceTexture() {
    Log.d(LOGTAG, "initSurfaceTexture");
    deleteSurfaceTexture();
    initTexOES(texCamera);
    mSTexture = new SurfaceTexture(texCamera[0]);
    mSTexture.setOnFrameAvailableListener(this);
}
项目:trust-wallet-android    文件:CameraSource.java   
/**
 * Opens the camera and starts sending preview frames to the underlying detector.  The preview
 * frames are not displayed.
 *
 * @throws IOException if the camera's preview texture or display could not be initialized
 */
@RequiresPermission(Manifest.permission.CAMERA)
public CameraSource start() throws IOException {
    synchronized (mCameraLock) {
        if (mCamera != null) {
            return this;
        }

        mCamera = createCamera();

        // SurfaceTexture was introduced in Honeycomb (11), so if we are running and
        // old version of Android. fall back to use SurfaceView.
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            mDummySurfaceTexture = new SurfaceTexture(DUMMY_TEXTURE_NAME);
            mCamera.setPreviewTexture(mDummySurfaceTexture);
        } else {
            mDummySurfaceView = new SurfaceView(mContext);
            mCamera.setPreviewDisplay(mDummySurfaceView.getHolder());
        }
        mCamera.startPreview();

        mProcessingThread = new Thread(mFrameProcessor);
        mFrameProcessor.setActive(true);
        mProcessingThread.start();
    }
    return this;
}
项目:Agora-Screen-Sharing-Android    文件:GLRender.java   
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
    Log.d(TAG, "onSurfaceTextureAvailable " + surface + " " + width + " " + height);
    initHandlerThread();

    Message msg = Message.obtain(mGLHandler, MSG_TYPE_SURFACE_CREATED, surface);
    mGLHandler.sendMessage(msg);
    msg = Message.obtain(mGLHandler, MSG_TYPE_SURFACE_CHANGED, width, height);
    mGLHandler.sendMessage(msg);
}
项目:Hitalk    文件:TextureVideoView.java   
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
    mSurface = new Surface(surface);
    if(mTargetState == STATE_PLAYING) {
        if(SHOW_LOGS) Log.i(TAG, "onSurfaceTextureAvailable start");
        start();
    }
}
项目:Aurora    文件:SampleVideo.java   
/**
 * 处理显示逻辑
 */
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
    super.onSurfaceTextureAvailable(surface, width, height);
    resolveRotateUI();
    resolveTransform();
}
项目:Android-Code-Demos    文件:CameraGLRendererBase.java   
private void initSurfaceTexture() {
    Log.d(LOGTAG, "initSurfaceTexture");
    deleteSurfaceTexture();
    initTexOES(texCamera);
    mSTexture = new SurfaceTexture(texCamera[0]);
    mSTexture.setOnFrameAvailableListener(this);
}
项目:grafika    文件:TextureViewCanvasActivity.java   
@Override   // will be called on UI thread
public boolean onSurfaceTextureDestroyed(SurfaceTexture st) {
    Log.d(TAG, "onSurfaceTextureDestroyed");

    synchronized (mLock) {
        mSurfaceTexture = null;
    }
    return true;
}
项目:rtmp-rtsp-stream-client-java    文件:Camera2ApiManager.java   
public Size[] getCameraResolutionsFront() {
  try {
    CameraCharacteristics cameraCharacteristics = cameraManager.getCameraCharacteristics("0");
    if (cameraCharacteristics.get(CameraCharacteristics.LENS_FACING)
        != CameraCharacteristics.LENS_FACING_FRONT) {
      cameraCharacteristics = cameraManager.getCameraCharacteristics("1");
    }
    StreamConfigurationMap streamConfigurationMap =
        cameraCharacteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
    return streamConfigurationMap.getOutputSizes(SurfaceTexture.class);
  } catch (CameraAccessException e) {
    Log.e(TAG, e.getMessage());
    return new Size[0];
  }
}
项目:BLPlayer    文件:TextureRenderView.java   
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
    mSurfaceTexture = surface;
    mIsFormatChanged = false;
    mWidth = 0;
    mHeight = 0;

    ISurfaceHolder surfaceHolder = new InternalSurfaceHolder(mWeakRenderView.get(), surface, this);
    for (IRenderCallback renderCallback : mRenderCallbackMap.keySet()) {
        renderCallback.onSurfaceCreated(surfaceHolder, 0, 0);
    }
}
项目:phonk    文件:CustomVideoTextureView.java   
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
    if (mOnEvent != null) mOnEvent.surfaceTextureAvailable(surface);

    mWidth = width;
    mHeight = height;
}
项目:Idea-ijkplayer    文件:TextureRenderView.java   
public InternalSurfaceHolder(@NonNull TextureRenderView textureView,
                             @Nullable SurfaceTexture surfaceTexture,
                             @NonNull ISurfaceTextureHost surfaceTextureHost) {
    mTextureView = textureView;
    mSurfaceTexture = surfaceTexture;
    mSurfaceTextureHost = surfaceTextureHost;
}
项目:airgram    文件:OutputSurface.java   
@Override
public void onFrameAvailable(SurfaceTexture st) {
    synchronized (mFrameSyncObject) {
        if (mFrameAvailable) {
            throw new RuntimeException("mFrameAvailable already set, frame could be dropped");
        }
        mFrameAvailable = true;
        mFrameSyncObject.notifyAll();
    }
}
项目:MOAAP    文件:CameraGLRendererBase.java   
private void initSurfaceTexture() {
    Log.d(LOGTAG, "initSurfaceTexture");
    deleteSurfaceTexture();
    initTexOES(texCamera);
    mSTexture = new SurfaceTexture(texCamera[0]);
    mSTexture.setOnFrameAvailableListener(this);
}
项目:live_master    文件:TextureMediaPlayer.java   
@Override
public void setSurfaceTexture(SurfaceTexture surfaceTexture) {
    if (mSurfaceTexture == surfaceTexture)
        return;

    releaseSurfaceTexture();
    mSurfaceTexture = surfaceTexture;
    if (surfaceTexture == null) {
        super.setSurface(null);
    } else {
        super.setSurface(new Surface(surfaceTexture));
    }
}
项目:PlusGram    文件:OutputSurface.java   
private void setup() {
    mTextureRender = new TextureRenderer(rotateRender);
    mTextureRender.surfaceCreated();
    mSurfaceTexture = new SurfaceTexture(mTextureRender.getTextureId());
    mSurfaceTexture.setOnFrameAvailableListener(this);
    mSurface = new Surface(mSurfaceTexture);
}
项目:CameraKitView    文件:Camera2.java   
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture texture) {
    if (mTextureView != null) {
        mTextureView.setSurfaceTextureListener(null);
    }
    return true;
}