Skip to content

自定义滤镜

注意

该方法回调为异步事件,请参考方法事件

方法名

customFilter

用法

js
let shader = "#extension GL_OES_EGL_image_external : require\n";
  shader += "precision mediump float;\n";
  shader += "varying vec2 vTextureCoord;\n";
  shader += "uniform samplerExternalOES sTexture;\n";
  shader += "void main() {\n";
  shader += "  vec4 color = texture2D(sTexture, vTextureCoord);\n";
  shader += "  float colorR = (1.0 - color.r) / 1.0;\n";
  shader += "  float colorG = (1.0 - color.g) / 1.0;\n";
  shader += "  float colorB = (1.0 - color.b) / 1.0;\n";
  shader += "  gl_FragColor = vec4(colorR, colorG, colorB, color.a);\n";
  shader += "}\n";
this.$refs.refVideoPlayer.customFilter({
  //滤镜处理内容
  shader: shader,
})
js
//自定义滤镜内容
const CUSTOM_FILTER_CONTENT = '#extension GL_OES_EGL_image_external : require\n'
  + 'precision mediump float;\n'
  + 'varying vec2 vTextureCoord;\n'
  + 'uniform samplerExternalOES sTexture;\n'
  + 'void main() {\n'
  + '  vec4 color = texture2D(sTexture, vTextureCoord);\n'
  + '  float colorR = (1.0 - color.r) / 1.0;\n'
  + '  float colorG = (1.0 - color.g) / 1.0;\n'
  + '  float colorB = (1.0 - color.b) / 1.0;\n'
  + '  gl_FragColor = vec4(colorR, colorG, colorB, color.a);\n'
  + '}\n';
let options = {
  //滤镜处理内容
  shader: CUSTOM_FILTER_CONTENT,
};
let params : JSONObject = JSONObject.parse(JSON.stringify(options)) as JSONObject
refLevenPlayer.value?.customFilter(params);

参数说明

参数名参数类型是否必填默认值参数描述
shaderString滤镜内容