【发布时间】:2013-01-28 15:09:51
【问题描述】:
这是一个我认为只有彻底研究过android-ndk的人才能回答的问题。
问题:我编写了一个使用文件资源管理器读取输入文件的应用程序。然后,当按下按钮解码和播放 时,应用程序应解码编码的输入文件并将其显示在设备屏幕上。这里的问题是解码是在本机代码中执行的。解码是正确的,因为我将它转储到 sdcard 并使用原始视频播放器验证它。解码帧为 RGB888 格式,数据类型为 unsigned char。因此,如果有人知道如何显示本机代码中的数据,请提供一些相同的建议。
我试过了:首先我将帧缓冲区返回给调用本机代码的函数,然后我将帧缓冲区转换为 char 数组并将该数组作为 java 对象返回(即 jcharArray ) 我的活动。在我的活动中,我将 char 数组转换为 int 数组,并使用 setpixels() 函数将此数组分配给位图。然后使用画布将这个框架绘制到设备屏幕上。应用程序是如何崩溃的,主要是每次解码帧时控件似乎都不会返回到 java 活动。此外,即使这种技术有效,显示的帧也会很慢,以至于它永远不会看起来像视频。
所以我恳请你们提供建议和任何技术来做同样的事情。 提前致谢...等待回复...
【问题讨论】:
标签: android opencv image-processing android-ndk