I am using videojs to play a video. Is it possibile to disable the native fullscreen in IOS iphone and use videojs fullscreen?
I tried the playsiline tag but it doesen't work.
Thanks a lot
iPhone still doesn't support the proper full screen API. With the preferFullWindow player option (as well as playinline), Video.js will do a "fake" full screen, filling the browser window instead. Not ideal, but the only option if you need to overlay something on top of the video during full screen playback.
Related
Using the Unity ReplayKit API from https://docs.unity3d.com/550/Documentation/ScriptReference/Apple.ReplayKit.ReplayKit.html
I can record, preview and share screen recordings just fine, however due to design & UX requirements I need to have custom buttons to invoke sharing/saving of the recorded clip. I need to show the recorded clip right after the capture (for example like videotexture on a plane) in the background with custom share button overlays.
Is there a way to access the clip captured by ReplayKit and bypass iOS native preview screen?
With iOS 11, you can have direct access to the video. See https://developer.apple.com/videos/play/wwdc2017/606/
You can save it using AVAssetWriter, then do whatever you want with it after that.
This project doesn't completely work, but will head you in the right direction: https://medium.com/#giridharvc7/replaykit-screen-recording-8ee9a61dd762
I am trying to implement a html 5 player inside a Webview in my app. I added the webkit-playsinline tab in video and its now playing inline in iPhone and iPad.
The issue arises is when user hits the fullscreen button, in both the iphone and iPad, it opens up the native player, which I don't want.
Can this be achieved?
I have followed this and thats why I am able to play the video inline however, when the user click on the "Full Screen" the control transfer to the native player which I don't want.
yes, I am using a UIWebView inside my app not safari specific!!
My research tells me that there is now way to escape fullscreen video viewing in iOS browsers on iPhone or iTouch. It also seems there there is no way to modify the native controls that are displayed along with the video. Is the user in a total blackbox while viewing video in this case?
I'm trying to find someway for a user to indicate that they like a video as it is playing. Is there anything I can do that isn't a hack? If not is there any indication from Apple that they will ever be willing to change this? I'd rather not make an app out of this project.
You actually can play a video in line on an iOS browser, if this is what you are aiming for although there are restrictions - updated answer:
Play video inline in a browser on iOS
Safari on large screen iOS (iPad) should support inline video (I don't have iPAD hand to verify this still works...).
Safari on 'small screen' iOS (i.e. iPhone) will not support inline video as standard. There is at least one workaround which will allow it but this does bypass much of the native video playback performance gains so it may not meet your needs. It is a work in progress still as you will see from the link, but try the demo on an iPhone browser - you need to hit the small play button beside the video, rather than the one on top of the video at the time of writing:
https://github.com/newshorts/InlineVideo
Playing inline in a UIWebView on iOS
Take a look at this Apple Developer page:
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/index.html#//apple_ref/doc/uid/TP40006950-CH3-SW31
In particular:
allowsInlineMediaPlayback
A Boolean value that determines whether HTML5 videos play inline or use the native full-screen controller.
and:
Discussion
The default value on iPhone is NO.
In order for video to play inline, not only does this property need to be set on the view, but the video element in the HTML document must also include the webkit-playsinline attribute.
We serve 3rd party videos in a iOS native app through UIWebviews.
On the iPhone when playing a video it directly switches to a fullscreen video view. On the iPad the video plays inline. This is expected according to Apple documentation.
This is because the value:
webView.allowsInlineMediaPlayback
is by default set to NO on iPhone and YES to iPad.
I would like to see the same behaviour on playback on the iPhone as on the iPad. So that is plays the video directly fullscreen. Setting webView.allowsInlineMediaPlayback to NO does not do the trick.
In your HTML5 source code add playsinline like in this example:
video controls="controls" webkit-playsinline="webkit-playsinline">
In your app, in the method you are calling to setup webview add
webView.allowsInlineMediaPlayback = YES;
Unfortunately the conclusion here is that it is not possible.
I have created a web page that auto plays a full screen background video.
On top of the video is a div that contains text & a link to an external site - this works fine in all desktop browsers.
How do i recreate the same setup to play on mobile devices - would I need to use javascript in order to achieve this?
I have spent many hours trawling google for a definitive answer and am now very confused.
Thanks in advance.
Autoplay for HTML5 video is not allowed on mobile devices such as iOS or Android. You can read this for the whys and hows on iOS.
On iPhone the video plays in the default (fullscreen) Quicktime player. So there is no real background notion (this could be accomplished in a native app where inline playback of video is allowed but not in the Safari/web browser). You would need to stick to an image I guess.
On the iPad or on Android in order to accomplish what you want you will need to bind your video tag to a touch event/button (like when a user 'touch' to enter your site), and on this event initiate the play sequence for the video (in your case the video being set to occupy the full width and height of the viewport).
Thanks