Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谁为wifi显示提供数据?_Android_Android Ndk_Wifi Direct_Vnc Server_Surfaceflinger - Fatal编程技术网

Android 谁为wifi显示提供数据?

Android 谁为wifi显示提供数据?,android,android-ndk,wifi-direct,vnc-server,surfaceflinger,Android,Android Ndk,Wifi Direct,Vnc Server,Surfaceflinger,我试着遵循Android Jelly bean 4.2中的wifi显示代码。在wifi显示中,PlaybackSession类将负责获取数据。最后,它将从名为SurfaceMediaSource的类中获取数据,该类继承自MediaSource。数据位于SurfaceMediaSource中的BufferQueue中。但是我找不到谁负责将数据写入缓冲队列。我相信SurfaceFlinger应该可以做到这一点。但是,我找不到任何特定的代码。有人知道它是如何工作的吗?检查onDisplayConnec

我试着遵循Android Jelly bean 4.2中的wifi显示代码。在wifi显示中,
PlaybackSession
类将负责获取数据。最后,它将从名为
SurfaceMediaSource
的类中获取数据,该类继承自
MediaSource
。数据位于
SurfaceMediaSource
中的
BufferQueue
中。但是我找不到谁负责将数据写入
缓冲队列
。我相信
SurfaceFlinger
应该可以做到这一点。但是,我找不到任何特定的代码。有人知道它是如何工作的吗?

检查
onDisplayConnected()
调用
wfd.cpp
com.android.server.display.DisplayDevice
。 两者都将在
frameworks/native/libs/gui/SurfaceComposerClient.cpp中的
SurfaceComposerClient::setDisplaySurface()
中结束

遗憾的是,我不明白设置
DisplayState::eSurfaceChanged
将如何导致显示呈现到
SurfaceMediaSource
中的
BufferQueue
,它正在使用surfaceflinger中的“虚拟显示”功能。