所以我目前有一个相机应用程序。我有它所以它只能在肖像模式下工作,但你仍然可以录制视频并以横向模式拍摄照片。我使用以下代码来处理:
videoConnection?.videoOrientation = self.orientation()
但是,由于应用程序本身没有注册横向模式,因此您无法通过横向时间快速记录屏幕(它保持纵向)(快速时间>文件>记录影片>选择设备名称)
有没有办法解决这个问题?我不需要实际更改有关设备的任何内容以支持横向,我只是希望能够在快速时间以这种方式记录它,但UI中的任何内容都不需要更改。
答案 0 :(得分:3)
您可以为beginGeneratingDeviceOrientationNotifications
设置通话UIDevice
并订阅UIDeviceOrientationDidChangeNotification
。之后,您可以在代码中使用UIDevice
的方向属性。
参考Apple documentation for UIDevice课程了解详情。
答案 1 :(得分:0)
尝试为int main(void) {
char *message;
int status;
pid_t child;
message = mmap(NULL, BUFSIZE , PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
if (message == MAP_FAILED) {
perror("mmap");
return 1;
}
child = fork();
if ( child == -1 ) {
perror("fork");
return 1;
} else if (child == 0) {
strcpy( message, "foo\n");
} else {
wait(&status);
printf("The child wrote:\n%s\n", message);
}
return 0;
}
设置beginGeneratingDeviceOrientationNotifications
来电并订阅UIDevice
。
使用UIDeviceOrientationDidChangeNotification
的比例。
答案 2 :(得分:0)
答案 3 :(得分:0)
这就是我最终要做的!利用明确的答案。
func orientationChanged() {
var orient = UIDevice.currentDevice().orientation
if orient == UIDeviceOrientation.Portrait {
print("PORT")
UIApplication.sharedApplication().statusBarOrientation = UIInterfaceOrientation.Portrait
} else if orient == UIDeviceOrientation.LandscapeLeft {
print("OR ARE YOU CRASHING")
UIApplication.sharedApplication().statusBarOrientation = UIInterfaceOrientation.LandscapeRight
} else if orient == UIDeviceOrientation.LandscapeRight {
print("WHY YOU CRASHING")
UIApplication.sharedApplication().statusBarOrientation = UIInterfaceOrientation.LandscapeLeft
} else if orient == UIDeviceOrientation.PortraitUpsideDown {
UIApplication.sharedApplication().statusBarOrientation = UIInterfaceOrientation.PortraitUpsideDown
}