Most visited

Recently visited

Added in API level 14

android.media.effect

提供允许您将各种视觉效果应用于图像和视频的类。 例如,您可以轻松修复红眼,将图像转换为灰度,调整亮度,调整饱和度,旋转图像,应用鱼眼效果等等。 系统在GPU上执行所有效果处理以获得最佳性能。

为了获得最佳性能,效果直接应用于OpenGL纹理,因此您的应用程序在使用效果API之前必须具有有效的OpenGL上下文。 您应用效果的纹理可能来自位图,视频甚至相机。 但是,纹理必须符合某些限制:

  1. They must be bound to a GL_TEXTURE_2D texture image
  2. They must contain at least one mipmap level

一个Effect对象定义了可应用于图像帧的单个媒体效果。 创建Effect的基本工作流程是:

  1. Call EffectContext.createWithCurrentGlContext() from your OpenGL ES 2.0 context.
  2. Use the returned EffectContext to call EffectContext.getFactory(), which returns an instance of EffectFactory.
  3. Call createEffect(), passing it an effect name from @link android.media.effect.EffectFactory}, such as EFFECT_FISHEYE or EFFECT_VIGNETTE.

您可以通过调用setParameter()并传递参数名称和参数值来调整效果的参数。 每种类型的效果都接受不同的参数,这些参数以效果名称记录。 例如, EFFECT_FISHEYE具有用于一个参数scale失真。

要在纹理应用效果,呼叫apply()Effect ,并通过在输入纹理,其宽度和高度,并且输出纹理。 输入纹理必须绑定到GL_TEXTURE_2D纹理图像(通常通过调用glTexImage2D()函数完成)。 您可以提供多个mipmap级别。 如果输出纹理未绑定到纹理图像,它将自动被效果绑定为GL_TEXTURE_2D并且具有一个mipmap级别(0),该级别将与输入大小相同。

注意:保证EffectFactory中列出的所有效果EffectFactory支持。 但是,所有设备都不支持从外部库提供的其他一些效果,因此您必须首先检查是否通过调用isEffectSupported()来支持外部库所需的效果。

Interfaces

EffectUpdateListener 一些效果可能会发出回调来通知主机效果状态的变化。

Classes

Effect

效果是可应用于图像帧的高性能转换。

EffectContext

EffectContext保留所有必要的状态信息,以在Open GL ES 2.0上下文中运行Effects。

EffectFactory

EffectFactory类定义可用效果的列表,并提供检查和实例化它们的功能。

Hooray!