андроид поддерживает лучший метод, чем glreadpixels? - PullRequest
2 голосов
/ 25 ноября 2011

Я делаю игру для Android. (Используя андегин) Мне нужно записать игровой экран.Это не для того, чтобы делать рекламные ролики, это для игроков игры, чтобы пересмотреть свой игровой процесс.Мое приложение должно записывать видео самостоятельно.Поэтому я не могу решить эту проблему, используя доступное приложение для записи на рынке.Я уже проверил приведенный ниже код.

http://code.google.com/p/andengineexamples/source/browse/src/org/anddev/andengine/examples/ScreenCaptureExample.java?spec=svn66d3057f672175a8a21f9d06e7a045942331f65c&r=66d3057f672175a8a21f9d06e7a045942331f65c

Это работает очень хорошо ... Но я хочу записать видео игрового процесса, а не один скриншот.

По крайней мере, яМне нужно 24 кадра в секунду для плавного воспроизведения, но если я использую glreadpixels, я могу получить 5 кадров в секунду на моем устройстве Xoom.Я искал различные сайты, чтобы решить эту проблему оптимизации.большинство людей говорят, что glreadplxels слишком медленен для записи видео.

http://www.gamedev.net/topic/473794-glreadpixel-takes-tooooo-much-time/

они рекомендуют glcopyteximage2d вместо glreadpixels.потому что glcopyteximage2d намного быстрее, чем glreadpixels.но я не могу найти, как использовать glcopyteximage2d в андегине.даже кто-то говорит, что android opengl ES не поддерживает glcopyteximage2d.

Возможно, существует другой способ записи плавного видео.Это чтение кадрового буфера устройства Android.Большинство приложений записи на рынке, используя этот метод.но эти приложения требуют разрешения root для захвата кадрового буфера.Я читал некоторые новости о том, что Android будет поддерживать захват экрана с suface_flinger после gingerbread.

Но я не могу узнать, как использовать framebuffer без разрешения root.T_T

Это моё предположение.

  1. использовать другой API OpenGL, который имеет лучшую скорость, чем glreadpixels.

  2. найти некоторыеAndroid API может получить кадровый буфер без прав root.(Может быть, я могу получить доступ к Android SURFACE_FLINGER ??)

  3. нарисовать еще одну закадровую текстуру для записи видео.

Но я не знаю, какреализовать эти методы.Какой подход правильный?У вас есть пример кода для записи видео на андроид?Пожалуйста, помогите мне решить эту проблему.Если вы знаете какой-либо другой метод, это будет полезно.

любая помощь будет оценена

1 Ответ

0 голосов
/ 09 июля 2013

Поддерживает ли поставщик графического процессора вашего устройства es3.0, если это возможно, вы можете попробовать использовать PBO.

Вот тема, к которой вы можете обратиться: Низкая производительность чтения с PBO,помогите !!!!!

...