public abstract class Effect
extends Object
java.lang.Object | |
↳ | android.media.effect.Effect |
效果是可应用于图像帧的高性能转换。 这些以OpenGL ES 2.0纹理名称的形式传递。 典型的帧可以是从磁盘加载的图像,也可以是来自相机或其他视频流的帧。
要创建效果,您必须先创建一个EffectContext。 您可以通过调用getFactory()
来获取上下文的EffectFactory的getFactory()
。 EffectFactory允许您实例化特定的效果。
应用程序负责创建EGL上下文,并在应用效果之前使其处于最新状态。 一个效果绑定到单个EffectContext,而后者又绑定到单个EGL上下文。 如果您的EGL上下文被销毁,则EffectContext将变为无效,并且任何绑定到此上下文的效果都不能再使用。
Public constructors |
|
---|---|
Effect() |
Public methods |
|
---|---|
abstract void |
apply(int inputTexId, int width, int height, int outputTexId) 对GL纹理应用效果。 |
abstract String |
getName() 获取效果名称。 |
abstract void |
release() 发布效果。 |
abstract void |
setParameter(String parameterKey, Object value) 设置一个过滤器参数。 |
void |
setUpdateListener(EffectUpdateListener listener) 设置一个效果监听器。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
void apply (int inputTexId, int width, int height, int outputTexId)
对GL纹理应用效果。
将效果应用于指定的输入GL纹理,并将结果写入输出GL纹理。 传递的纹理名称在当前GL上下文中必须是有效的。
输入纹理必须是具有给定宽度和高度的有效纹理名称,并且必须绑定到GL_TEXTURE_2D纹理图像(通常通过调用glTexImage2D()函数完成)。 可以提供多个mipmap级别。
如果输出纹理未绑定到纹理图像,它将自动以效果绑定为GL_TEXTURE_2D。 它将包含一个mipmap级别(0),它将与输入具有相同的大小。 没有定义其他mipmap级别。 如果输出纹理已经绑定,并且其大小与输入纹理大小不匹配,则结果可能会被裁剪或仅部分填充纹理。
请注意,不管纹理图像是否最初提供,输入和输出纹理都由调用者拥有。 也就是说,调用者负责调用glDeleteTextures()来释放输入和输出纹理。
Parameters | |
---|---|
inputTexId |
int : The GL texture name of a valid and bound input texture. |
width |
int : The width of the input texture in pixels. |
height |
int : The height of the input texture in pixels. |
outputTexId |
int : The GL texture name of the output texture. |
String getName ()
获取效果名称。 返回该效果的唯一名称,该名称与EffectFactory用于实例化该效果的名称相匹配。
Returns | |
---|---|
String |
The name of the effect. |
void release ()
发布效果。
释放效果和与之相关的任何资源。 如果您需要确保获得的资源不再受到影响,您可以拨打此电话。 释放效果使其无法重复使用。
请注意,必须使用EffectContext和EGL上下文来调用此方法,因为该效果可能会释放内部GL资源。
void setParameter (String parameterKey, Object value)
设置一个过滤器参数。 请查阅效果文档以获取每种效果支持的参数键列表。
Parameters | |
---|---|
parameterKey |
String : The name of the parameter to adjust. |
value |
Object : The new value to set the parameter to. |
Throws | |
---|---|
|
if parameterName is not a recognized name, or the value is not a valid value for this parameter. |
void setUpdateListener (EffectUpdateListener listener)
设置一个效果监听器。 如果设置了侦听器,某些效果可能会将状态更改报告回主机。 有关更多详细信息,请参阅个别效果文档
Parameters | |
---|---|
listener |
EffectUpdateListener : The listener to receive update callbacks on. |