不推荐使用SurfaceHolder.setType ......但是需要吗?

bwo*_*gie 34 android surfaceholder

void android.view.SurfaceHolder.setType(int type)

public abstract void setType(int type)从:API Level 1

不推荐使用此方法.这被忽略,在需要时自动设置该值.

设置曲面的类型.

http://developer.android.com/reference/android/view/SurfaceHolder.html

它说它是自动设置但是没有它我的视频不播放.这里发生了什么?有什么东西可以取代它吗?我有时间在Android上正确播放视频.

lyr*_*boy 56

诀窍是知道什么时候被弃用,这很难从我的经验中确定.对于可用的最新API,文档始终是最新的,但如果我不得不猜测,您可能没有在最新的API上运行此应用程序.因此,您仍然必须使用此方法(通常使用PUSH_BUFFERS)使其在较旧的平台上运行.

编辑:它在Android 3.0中被弃用,文档现在反映了这一点.
所以我们可以使用它如下:

if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB)
    getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
Run Code Online (Sandbox Code Playgroud)

  • 在Java 8(与Android无关)之前,注释只能用于类,变量,方法等的声明.如果要避免过于广泛地应用该弃用抑制,可以将可疑代码提取到自己的方法中并使用`@ SuppressWarnings`标记该方法. (2认同)
  • 对于3.0(蜂窝)和更高版本,您根本不需要调用此方法.正如文档所述,它会被忽略并自动设置. (2认同)