小编Tor*_*ado的帖子

使用AVAssetWriter捕获屏幕 - 在模拟器上正常工作但在设备上创建黑色视频

即时通讯尝试捕获帧缓冲区数据并转换为我的iPhone游戏的视频..即时通讯使用AVAssetWriter来完成这件事.代码在模拟器上工作正常,但在设备本身没有.在设备上它生成一个黑色视频

即时通讯使用以下代码:

//This code initializes the AVAsetWriter and other things

- (void) testVideoWriter {
    CGRect screenBoundst = [[UIScreen mainScreen] bounds];
    //initialize global info
    MOVIE_NAME = @"Documents/Movie5.mp4";
    //CGSize size = CGSizeMake(screenBoundst.size.width, screenBoundst.size.height);
    CGSize size = CGSizeMake(320, 480);
    frameLength = CMTimeMake(1, 5); 
    currentTime = kCMTimeZero;
    currentFrame = 0;

    MOVIE_PATH = [NSHomeDirectory() stringByAppendingPathComponent:MOVIE_NAME];
    NSError *error = nil;

    videoWriter = [[AVAssetWriter alloc] initWithURL:[NSURL fileURLWithPath:MOVIE_PATH]
                                            fileType:AVFileTypeMPEG4 error:&error];

    NSDictionary *videoSettings = [NSDictionary dictionaryWithObjectsAndKeys:AVVideoCodecH264, AVVideoCodecKey,
                                   [NSNumber numberWithInt:size.width ], AVVideoWidthKey,
                                   [NSNumber numberWithInt:size.height ], AVVideoHeightKey, nil];

    writerInput = [AVAssetWriterInput …
Run Code Online (Sandbox Code Playgroud)

video ipad avassetwriter

6
推荐指数
0
解决办法
1663
查看次数

如何像iPhone中的Talking Tomcat应用程序一样录制屏幕视频?

嘿我正在尝试记录我的游戏的游戏,以便我可以从设备本身上传其视频到youtube ...我试图做同样的事情,如iPhone的会说话的tomcat应用程序..记录视频然后播放,等等...

我使用glReadPixels()来读取帧缓冲数据,然后在AVFoundation框架中借助AVAssetWriter将其写入视频.但是,在使用glReadPixels时,读取每个图形上的数据会将FPS从大约30-35降低到2-3.

我认为会说话的tomcat也是在Opengl ES的帮助下制作的,它也有视频录制功能,但在阅读每一帧任何想法时都不会减慢速度....?

iphone video opengl-es glreadpixels avassetwriter

5
推荐指数
1
解决办法
4260
查看次数

多人联网游戏中的同步?

最近我一直在研究多人网络应用程序.我使用Bonjour服务和NSStream对象成功实现了客户端服务器模型.双向沟通已成功完成.

我面临的问题是:运行应用程序的两个设备通过本地wifi连接.从客户端向服务器发送消息时存在延迟问题,反之亦然.

简要描述:

  • 这是一款最多有两名球员的赛车游戏.
  • 一台服务器和其他客户端.
  • 当客户端按下按钮时,会向服务器发送特定消息,告知按下了哪个键或按钮.然后服务器响应并在服务器本身上对客户端的汽车进行更改.这些变化并不总是一样的.客户端屏幕上的汽车实际位置与服务器屏幕中的实际位置之间始终存在差异.

有任何想法吗?

iphone networking synchronization multiplayer

4
推荐指数
1
解决办法
5810
查看次数

使用带有多重采样的glReadPixel()读取数据

目前我正在尝试从帧缓冲区读取像素数据,以便在IOS中捕获屏幕.使用以下代码设置帧缓冲区时,GlreadPixels命令工作正常: -

//buffers
// Create a depth buffer that has the same size as the color buffer.
glGenRenderbuffersOES(1, &m_depthRenderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, m_depthRenderbuffer);
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT24_OES, width, height);

// Create the framebuffer object.

glGenFramebuffersOES(1, &framebuffer);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, framebuffer);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES,
                             GL_RENDERBUFFER_OES, m_colorRenderbuffer);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES,
                             GL_RENDERBUFFER_OES, m_depthRenderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, m_colorRenderbuffer);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, framebuffer);
Run Code Online (Sandbox Code Playgroud)

但是当我使用深度缓冲和颜色缓冲进行多重采样时,glreadpixels()不会像以前的代码那样捕获任何像素数据....对于多次采样,我使用以下代码: -

glGenFramebuffersOES(1, &sampleFramebuffer);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, sampleFramebuffer);

//GLuint sampleColorRenderbuffer;
glGenRenderbuffersOES(1, &sampleColorRenderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, sampleColorRenderbuffer);
glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER_OES, 4, GL_RGBA8_OES, width, height);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, sampleColorRenderbuffer);

//glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER_OES, 4, GL_RGBA8_OES, width, height);
//glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, sampleColorRenderbuffer);

GLuint sampleDepthRenderbuffer;
glGenRenderbuffersOES(1, &sampleDepthRenderbuffer); …
Run Code Online (Sandbox Code Playgroud)

multisampling opengl-es framebuffer glreadpixels ios

4
推荐指数
1
解决办法
5659
查看次数

播放来自NSStream的原始pcm音频数据

我正在尝试从NSInputStream播放pcm数据.任何人都可以为我提供正确的方法或代码.

我使用以下代码获取了Stream in StreamHasData事件.

uint8_t bytes[self.audioStreamReadMaxLength];
        UInt32 length = [audioStream readData:bytes maxLength:self.audioStreamReadMaxLength];
Run Code Online (Sandbox Code Playgroud)

现在我如何在iphone中播放字节音频数据?

iphone audio pcm nsstream ios

1
推荐指数
1
解决办法
3774
查看次数