On both macOS and iOS, when a user takes a screenshot of a video file playing within iTunes / the TV app, the screenshot is obscured and the media player layer appears as a solid black box in the screenshot as shown here:
iOS:
macOS:
I have read in other posts that it is not possible to obscure/prevent the user from taking a screenshot on iOS devices; however, as shown in these images, Apple appears to be using some method to obscure the content of the video in the screenshot file.
In these cases, how is the app managing to obscure the video content within the screenshot?
For MacOS it's pretty easy... set the window level to be above a certain point, for example in one of my apps where I disallow screenshots, I do this (in Objective-C):
windowLevel = CGShieldingWindowLevel();
[myWindowOutlet setLevel: windowLevel];
For iOS it's trickier. You can tell when a screenshot has been taken, but there's no official API to stop it from happening. One person on Apple's developer forums suggested to call "touchesCancelled"
Related
I am using swift to build a mobile app. I see some Android apps support showing in a smaller size on top-right on the home screen. I wonder how I can acheive this on iOS. Does it require any kind of permission?
Below is a screenshot about YouTube app show on the top-right of the homescreen.
The only comparable thing in iOS is for videos on an iPad — not every iPad supports it. It's called Picture In Picture.
I was wondering if you can make the home screen visible through an app.
For example, let's take an example from the Apple Calculator. On macOS, the top is blurred and you can see everything through it.
I know iOS is a whole different OS and works through views and not tabs, but still: is it possible to e.g. blur the top of the iOS calculator and see the home screen through it?
Thanks, Ben
Unfortunately this is not possible, as this could be a serious breach of privacy for iPhone users.
If you could make the home screen visible through an app, a developer could technically save pictures of users' homescreens and store them in a remote database, which could give them access to private information. As a result, Apple doesn't allow you to do this.
I am fairly new to iOS. I need your help.
Is is possible to take screenshot of an application (lets say Music) which is running in the foreground and when iOS device's screen is locked using a program? If so, can you please let me know the code correspondingly. (This is for personal work only)
The iOS APIs for taking screenshots are private, which means that you cannot programmatically take a screen shot of the phone. Also, since iOS apps are sandboxed, you do not have access to the Music app (or any other app), so you cannot capture an image of the view being presented.
However, if the user takes a screenshot, you can access that screen shot using PhotoKit by getting the latest image in the Screenshots smart album.
Is it possible to support iOS 9's multitasking (e.g. split screen) for iPhone/iPod apps as opposed to a Univeral app?
My existing app would need a full UI redesign to look good on an iPad screen, but it would look fine right away on a split screen, which is only half as big.
In my own tests I've only been able to get it to work with a Universal app, but I haven't been able to find any Apple documentation on this yet, so I'm hoping someone here might have some info.
Is it possible to support iOS 9's multitasking (e.g. split screen) for iPhone/iPod apps as opposed to a Universal app?
No.
I haven't been able to find any Apple documentation on this yet
They're not explicit about it, because it seems obvious on its face, as I think you understand. You can infer it from a few places though. For example this documentation says:
In your project’s Info.plist file, in the “Supported interface orientations (iPad)” array, declare support for all four device orientations, as shown here:
It should be obvious that the “Supported interface orientations (iPad)” array won't be read on an iPhone-only app.
This is about device/iOS capabilities (so it's not a dev question per se).
Multitasking is supported on all devices. However, the iPad also adds Slide Over, Split View and Picture in Picture.
On your iPad, you can use multitasking to switch between apps using gestures, use two apps at once, answer emails while watching a video, and more.
Source
I am encountering an issue which I believe is caused, as a result of upgrading to iOS version 6 on my iPad2 and iPad4. I have searched the support boards but have not found a solution to this issue. The issue involves mirroring the iPad on a TV using the official HDMI adaptor as shown here: http://store.apple.com/uk/product/MD098ZM/A/apple-digital-av-adapter
When playing a video on the device using the native MPMoviePlayerController, via the adapter, the result on the TV is not full screen and, instead, it is provided with black borders around the video (these bars are an ever present even when viewing the app's non-video parts or the standard apple menus which I believe was always the case but, previously, the video played full screen via the cable).
I have tested apps which I have developed which contain video playback, as well as a number of leading apps on the marketplace, and all experience the same issue when playing video mirrored on the device with iOS6 and TV at the same time. The only app I found that was able to play the video full screen on TV is the BBC iPlayer, but this seems to switch of mirroring off temporarily when the video is played full screen on TV.
I believe that, when on iOS 5, it was possible to mirror the video playback on device and TV simultaneously, and at full screen, without the black bars on the TV.
Can anyone here please confirm if this issue is related to iOS 6 and be able to kindly point me in the right direction to resolve this issue in the iOS apps that I have developed?
Are you sure that this is not happening because of your external screen's overscan settings?
Check this thread iOS screen mirroring shows overscan borders on selected apps
And here is some information on overscan & underscan from Apple
http://support.apple.com/kb/HT5841