gpt4 book ai didi

android - 真的很困惑 setPreviewCallback 在 Android 中,需要建议

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:07 24 4
gpt4 key购买 nike

我正在 Android 上构建一个应用程序,用于从相机获取帧、处理它们,然后在 SurfaceView 上显示帧,以及通过 Canvas 和 drawbitmap 等在 SurfaceView 上绘图。

只是检查一下,SurfaceView 和 Bitmaps 以及 Canvases 是最好的方法吗?我追求速度。

假设上面的答案是肯定的,那么问题就是:我应该把下面的函数放在哪里

camera_object.setPreviewCallback(new PreviewCallback()
public void onPreviewFrame(byte[] data, Camera camera){

我应该将它放在 onCreate() 中还是应该放在 surfaceCreated() 或 surfaceChanged() 中?

我声明了我的 mainactivity 类如下:

public class MainActivity extends Activity implements SurfaceHolder.Callback, Camera.PreviewCallback
{

在那个类中,Eclipse 强制我在 MainActivity 类中为 onpreviewframe 创建一个覆盖函数,如下所示

public void onPreviewFrame(byte[] data, Camera camera){
}

但它永远不会被调用。我应该尝试使用这个功能吗?使用它更好吗?或者它只是一个 Eclipse 的东西?

请指教

最佳答案

你在打电话吗 setPreviewDisplay() , startPreview()setPreviewCallback(this)从应用程序?否则,您将不会收到任何对 onPreviewFrame() 的调用。事实上,如果您使用的是 SurfaceView,那么回调预览缓冲区就是屏幕上显示的实际缓冲区的副本。所以如果你想显示这些复制的缓冲区,你需要创建一个新的 View 并覆盖它。这将是低效的。我建议你使用 SurfaceTexture而是使用“onFrameAvailable”回调来获取帧,然后手动绘制和显示。这方面的一个例子可以在 PanoramaActivity 中找到。默认 Android 相机应用程序的代码。

关于android - 真的很困惑 setPreviewCallback 在 Android 中,需要建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11544877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com