I have a very strange bug in a shipping iPad/iPhone app that I can't fix/track down.
My app plays video in a standard MPMoviePlayerController but with the interface hidden and my own buttons to play and stop.
That works fine but sometimes, after a few times of use, my app refuses to play any further video. This happens only on the iPad (in iOS 3.2.x), on the iPhone (in iOS 4.x) everything works fine all the time. Strangely enough, even after I quit my app, after I start it again it still refuses to play video. It doesn't save the video state, and it does reload the video. Only after I restart the iPad it starts working again.
If my iPad is in a "don't play video" state I can debug my app from Xcode and there isn't anything different other than the fact that the movie doesn't play but stays paused indefinitely.
The loadState property reports as MPMovieLoadStatePlayable, but the playbackState property stays MPMoviePlaybackStatePaused however many times I sent it a "play" command.
There is nothing I can do in my app (like choosing another video) to make the video work again.
The videos are 600 x 400 H.264 and are played in a view that is larger than full screen so I can show them full screen (without black bars) on the iPad without needing two different versions for iphone/ipad, because the devices have different aspect ratios.
There is plenty of RAM available (> 60 MB). Other apps that play video (iTunes/YouTube/streamToMe) play fine, but use the standard MoviePlayer interface/controls and don't of course don't play bigger than full screen.
This all makes me suspect this is an Apple bug. I haven't yet tested this in a beta version of iOS, and if so I couldn't talk about it either.
Anybody seen this behaviour? And has a possible solution? Thanks!
In this thread Ipad MPMovieplayerController video loads but automatically pauses when played it appears they solved the issue by using player.useApplicationAudioSession = NO;. Give it a try!
This is a quite common bug with MPMoviePlayerController on iPad OS 3.2.x
After a few runs of any app, the movies fail to play and if you move the scrubber you can see the frames but you can't still play the video for more than one frame at a time!
Besides you may notice a great memory consumption, due to the fact that some apps start receiving memory warnings more often than normal.
Finally you may prove this is a system problem (and not specifically an app problem) buy trying to run other apps that use the same framework, e.g. "ABC News". The issues cannot be seen with other apps that use UIWebView for instance (e.g. the ones based on You Tube videos).
The only solution is to re-boot the device. This works until next reboot.
Carlo
Related
Hey everyone,
we have a serious issue with a website where we have an html5 video on the landingpage. It's a muted autoplay 5second loop that is supposed to play as a background-video on the site.
Now … we have two persons testing it, with the exact same device.
iPhoneX with Google Chrome (caches cleared and tested on both devices with Incognito and without)
On my phone the autplay works just fine. Video plays in the background.
On my collegues iPhoneX (same build, bought at the same date, same iOS version, same Browser (caches cleared)) it does not play automatically. He get's the play-icon.
Any idea why?
Thanks,
Matt
For everyone looking into that. The reason is iOS Low-Power-Mode. in low power mode the videos do not automatically play.
Our iPhone app is configured to play audio in the background, and most of the time it works well and the audio is playing.
But we had several reports from users that while the app is in the background and it IS playing audio, suddenly in the middle of playback it stops.
It seems to happen usually when the user is using apps like Facebook or WhatsApp heavily, sending and receiving many messages.
When the user returns to the app, it seems to start from the launch screen, as if it was closed, not just the audio stopped.
There seems to be no crash logs on the users phones when this happens.
What can cause this? What can we do to prevent this or what can we do to investigate when this happens? Can it be prevented entirely?
apple fixed this already.
Before the release of iOS 10.0.2, the only way to fix the bug was to unplug the EarPods and then plug them back in. Not all devices were affected, but it looks like Apple finally found the fix it promised earlier this week.
Here is an article: http://www.cultofmac.com/446417/apple-fixes-iphone-audio-issues-ios-update/
This bug looks to be resolved as of iOS 9.
The video plays fine on the desktop evergreen browsers, and in stand alone mode on Android devices.
It even plays nice on the iOS8 safari, but once a user goes and adds it to their home screen, the video no longer plays.
I put up an example here http://bugs.readingplus.com/ios8-video-test/.
If you using iOS8 you can play the video, add the url to your home screen and load it up. You will get the controls, but once you touch play all you get is the first frame.
I put the source of the page on Github, or you can just go to the page and view the source.
Am I missing something, is my markup fubared, is this just a bug, has anyone found a work around?
As of iOS 8.3 the issue is partially resolved. I have verified that the video, in the example, now plays when launched from the "Add to Home Screen" link.
The remaining issue is the audio, it is not being rendered/played.
this is great news, can it be confirmed by others?
I don't want to take the plunge and update to 8.3 until I'm confident video and audio in a homescreen webclip are working in iOS 8.3
Looks like iOS 8.3 fixes this issue. I have a standalone web app that uses an audio element, and it's working as expected now. FINALLY!
Is there a chance of possibility to create an iOS application which would record video from screen and save it on device?
I'm talking about recording everything that happens on screen not only within bounds of this application.
The app works in background and captures everything.
I'm playing a game - it is recording, I'm watching video - it is recording.
I'm 99 percent sure it's impossible, but maybe there's something I'm unaware of.
It is impossible without using the private API.
No, it is not possible.
You can try to install AirServer application on your MAC, then turn on mirroring on your iOS device and stream your screen to your MAC and use 3rd party applications to capture your screen on the MAC
I am making some modifications to an iPad app written by somebody else and one of the things I need to fix is that the video needs to continue to show the last frame when playback is complete rather than the screen just going black.
On the iPad simulator using iOS 4.3, this is exactly what it does already, but it just goes black on iOS 5 (on both the simulator and a device).
Any suggestions on the best way to achieve this so that it works for iOS 5? The code is using AVQueuePlayer.
I eventually found the solution:
[player setActionAtItemEnd:AVPlayerActionAtItemEndPause];
I'd already tried this and discarded it as not working, but I think I made the mistake of not setting it via the setter.