我需要创建一个变量vVideo
。此变量是SurfaceViewRenderer
的类类型。这个班
扩展View
并实现另一个获得函数onFrame
的类。我需要覆盖此onFrame
。
这是我尝试过的:
private var vVideo: SurfaceViewRenderer? = null
fun startConfigurationAudioVideo() {
vVideo = object : SurfaceViewRenderer(this) {
override fun onFrame(frame: VideoFrame?) {
Log.d("vVideo", "onFrame")
super.onFrame(frame)
}
}
vVideo = findViewById<SurfaceViewRenderer>(R.id.activity_display_videocast)
...
但是, 如果我这样做:
vVideo = object : SurfaceViewRenderer(this) {
override fun onFrame(frame: VideoFrame?) {
Log.d("vVideo", "onFrame")
super.onFrame(frame)
}
}
在此之前
vVideo = findViewById<SurfaceViewRenderer>(R.id.activity_display_videocast)
我没有surfaceRender。
而且,如果我做逆运算,我不会得到监听器。
问题是我没有用她的方法onFrame及其表面(它的View)声明vVideo。 问题是我不能同时拥有两个。
感谢帮助!
答案 0 :(得分:5)
您正在创建并实例化{[key:string]:TopicCategory}
的匿名类,然后在接口上获得一个匿名对象。
要使此工作有效,您必须创建一个扩展SurfaceViewRenderer
的新类,然后在布局上使用它。
类似这样的东西:
SurfaceViewRenderer
然后在您的布局上使用它:
package your.package.name
class SurfaceViewRendererWithFrameListener:SurfaceViewRenderer
{
override fun onFrame(frame: VideoFrame?)
{
Log.d("vVideo", "onFrame")
super.onFrame(frame)
}
}