我正在将一个自定义视频编码元素添加到一个buddypress网站,以便所有用户,如果他们上传不是mpeg格式的视频,视频将被发送到编码脚本以放入mpeg4格式。
一旦网站检测到视频是非mpeg4格式,ajax调用首先要求1)视频是否已经发送过,2)如果没有,则将其发送到脚本中编码,并添加一段活动元数据,表明它已被发送。
这背后的想法是在视频正在处理时,它将检查该元数据是否存在并且值为1.如果是,则不会再发送视频。
因此,在编写本文的过程中,我编写了以下if语句,其中包含要添加的自定义元数据。
$encodedId = bp_activity_get_meta( $activityId, '_mpp_video_encode');
if($encodedId != 1) {
// execute a bash script to convert the video
// when done, create metadata set that metadata to 1
bp_activity_add_meta( $activityId, '_mpp_video_encode', 1, true );
}
else {
// do nothing, video is being encoded
}
当我第一次测试时,它成功添加了元数据并触发了我想要的所有内容。然后我使用phpmyadmin删除了后端的元数据,再次运行脚本进行测试。
现在,无论我做什么,函数bp_activity_get_meta 总是返回值1,因此脚本不会运行,即使我通过phpmyadmin可以在数据库中清楚地看到这根本不是真的。
据我所知,bp_activity_add_meta不会在数据库中的任何其他地方创建条目,而是bp_activity_meta。
帮助!!