- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用正在播放电影文件的 GPUImageMovie,该文件是在 iOS 设备上录制的。
但是,当 GPUImageMovie 播放它时,它的方向错误,因此视频不会旋转以正确显示。
如何让它尊重它的方向?我试过修改 OpenGL 代码,但没有成功。
最佳答案
我在使用 GPUImageMovie 播放在 iOS 设备上录制的视频时遇到了同样的问题。我使用以下函数解决了它:
通过传递过滤器来调用此 setRotationForFilter:
方法。 orientationForTrack:
将返回您当前的视频方向。
- (void)setRotationForFilter:(GPUImageOutput<GPUImageInput> *)filterRef {
UIInterfaceOrientation orientation = [self orientationForTrack:self.playerItem.asset];
if (orientation == UIInterfaceOrientationPortrait) {
[filterRef setInputRotation:kGPUImageRotateRight atIndex:0];
} else if (orientation == UIInterfaceOrientationLandscapeRight) {
[filterRef setInputRotation:kGPUImageRotate180 atIndex:0];
} else if (orientation == UIInterfaceOrientationPortraitUpsideDown) {
[filterRef setInputRotation:kGPUImageRotateLeft atIndex:0];
}
}
- (UIInterfaceOrientation)orientationForTrack:(AVAsset *)asset
{
AVAssetTrack *videoTrack = [[asset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];
CGSize size = [videoTrack naturalSize];
CGAffineTransform txf = [videoTrack preferredTransform];
if (size.width == txf.tx && size.height == txf.ty)
return UIInterfaceOrientationLandscapeRight;
else if (txf.tx == 0 && txf.ty == 0)
return UIInterfaceOrientationLandscapeLeft;
else if (txf.tx == 0 && txf.ty == size.width)
return UIInterfaceOrientationPortraitUpsideDown;
else
return UIInterfaceOrientationPortrait;
}
希望这能解决您的问题。
关于ios - GPUImageMovie 不尊重 imageOrientation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26740964/
在我的 iOS 应用程序中,我想在 UIImage 上应用滤镜 CIGaussianBlur,当它获得具有较大高度的图像时,它会旋转图像 CIContext *context = [CICont
我正在使用正在播放电影文件的 GPUImageMovie,该文件是在 iOS 设备上录制的。 但是,当 GPUImageMovie 播放它时,它的方向错误,因此视频不会旋转以正确显示。 如何让它尊重它
我正在 iOS 5 中开发 iPhone 应用程序。我使用 UIImagePickerController 让用户选择图像,并且我需要知道图像的方向。 当选择图像时,我有 UIImagePickerC
我正在使用 UImagePickerController 从相机捕获图像。 在 didFinishPickingImage 委托(delegate)方法中,我得到的图像的 imageOrientati
我是一名优秀的程序员,十分优秀!