Post not yet marked as solved
I'd like to know how to detect if an application is playing music (I guess audio) and pause it while my app does something and then resume it once it's done.
It seems like I should be able to do that with "Now Playing" or "Media Player", but these appear to be iOS libraries and not fleshed out for the Mac (or I am misunderstanding the documentation).
Control Center appears to be unscriptable, while a user can control Media via the Shortcuts app, it seems like a 3rd Party app can't embed and execute a shortcut.
Post not yet marked as solved
I have to process interviews, recorded on iphone and sent to me in smrc-format. I have been unable to find a file-converter able to read smrc and convert to mp3 or comparable.
Is there a way to make these files audible?
The header of one of these files starts like this:
bplist00‘ ûüX$versionX$objectsY$archiverT$top � Ü†Ø ( $%&-89:;<=>IMPSVY_bepsvy| äçêìñóòôùU$null“
V$classZNS.objectsÄ ´
Help would be greatly appreciated, the interviews cannot be done again.
Post not yet marked as solved
Only videos uploaded using iphone 11 only play audio using tag but plays when downloaded. I already tried to upload using other iphone devices and it works pretty well. Why is that?
Post not yet marked as solved
I have implemented an app with ionicvue.
On one page I want to display videos with the HTML5 video control, e.g.
video src="https://media.geeksforgeeks.org/wp-content/uploads/20210314115545/sample-video.mp4" ....
it works on web, on android, but it does not work on iOS.
There is only a play button with a strike through line
I have tried all of the available option conbinations (controls playsinline webkit-playsinline etc.) but it does not help.
Any Ideas?
Thanks a lot
Alex
Post not yet marked as solved
Hi,
I have written a DAL virtual webcam plugin which works fine with all apps (Zoom, OBS, ...) except Apple QuickTime.
Other 3rd party virtual webcams show up in QuickTime, for instance the OBS virtual cam plugin:
https://github.com/obsproject/obs-studio/tree/dde4d57d726ed6d9e244ffbac093d8ef54e29f44/plugins/mac-virtualcam/src/dal-plugin
My first intention was that it has something to do with code signing, so I removed the signature from OBS virtual cam plugin but it kept working in QuickTime.
This is the source code of my plugin's entry function:
#include <CoreFoundation/CoreFoundation.h>
#include "plugininterface.h"
extern "C" void *TestToolCIOPluginMain(CFAllocatorRef allocator, CFUUIDRef requestedTypeUUID)
{
// This writes to a log file in /tmp/logfile.txt but is NEVER called from QuickTime:
Logger::write("Called TestToolCIOPluginMain");
if (!CFEqual(requestedTypeUUID, kCMIOHardwarePlugInTypeID))
return nullptr;
return VCam::PluginInterface::create();
}
And the plugin's Info.plist (almost the same as OBS virtual cam's one):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>TestDriverCIO</string>
<key>CFBundleIdentifier</key>
<string>com.test.cmio.DAL.VirtualCamera</string>
<key>LSMinimumSystemVersion</key>
<string>10.13</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>TestDriverCIO</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>3.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>3.0.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFPlugInFactories</key>
<dict>
<key>AAAAAAAA-7320-5643-616D-363462697402</key>
<string>TestToolCIOPluginMain</string>
</dict>
<key>CMIOHardwareAssistantServiceNames</key>
<array>
<string>com.test.cmio.VCam.Assistant</string>
</array>
<key>CFPlugInTypes</key>
<dict>
<key>30010C1C-93BF-11D8-8B5B-000A95AF9C6A</key>
<array>
<string>AAAAAAAA-7320-5643-616D-363462697402</string>
</array>
</dict>
</dict>
</plist>
Interestingly "TestToolCIOPluginMain" is never called (the logger never writes an output) when starting QuickTime and the camera is not shown in QuickTime.
Is there something special required to get the DAL plugin to show up in QuickTime? What am I missing here?
Regards,
Post not yet marked as solved
Hello everyone,
I am developing a web application and I have a video presentation within the app and it seems to have issues only the iPad or mobile devices. I've read that autoplay doesn't seem to work on the iOS systems anymore and playing muted is allow. I've verified this but is there any way to get the video to play? I have a button the should start the video but it doesn't I've also tried using various other things to get it to work but to no avail.
I'm currently using a software platform called Bubble.io using javascript, HTML, Dom commands. Any tips/advise would be greatly appreciated also here is a link to the test video to show what is going on.
https://testingvideoplayer.bubbleapps.io/version-test?debug_mode=true
If you have any questions/concerns let me know.
Post not yet marked as solved
We are experiencing audio sync issues during playback on fMP4 HLS live streams (HLS and LL-HLS) on Apple devices only (iOS and macOS) and we're not sure what's causing the problem. The issue does not occur during playback on Windows or Android platforms.
During playback in Safari, everything is fine until the sync gets lost suddenly, usually 5-10 minutes after playback begins. The extent of the desync varies but is very noticeable when it does - usually in the 15-30 frame range. Sync is always restored when restarting the player, until it becomes lost again some minutes later.
We are capturing the streams on iPhone devices and encoding HEVC / AAC-LC at 30fps locally on the device, and then sending to a media server for further processing. We then transcode the source stream and create multiple variations at different bitrates (HEVC). Because we are streaming from mobile devices in the field, during our server-side transcoding we set a constant 30fps frame rate in case of drops due to network issues. I should add that the issue occurs just as much with h264 as HEVC (we've tested many different combinations of input/output formats and protocols).
Regardless of whether we playback the source stream, the individual transcoded variations, or the ABR playlist with all variations, the sync problem appears in the same manner.
One interesting note. The issue seldom occurs on one of our older devices, an iPhone 6s Plus running a slightly older iOS version (14.4.1).
We suspect it has something to do with discontinuities inherent in our input streams that are not being corrected during our normalization/transcoding process. The Apple player is not compensating as other players are doing on other platforms.
We've run the Apple MediaStreamValidator validator tool and discovered multiple "must fix" issues - but it's not clear which of these, if any, are causing our problems. See output attached.
MediaStreamValidator output
Also, here is the full HLS report from the validator tool (in PNG format due to file restrictions here):
Happy to share more details or run more tests. We've been trying to debug this for weeks now. Thanks for your help.
Post not yet marked as solved
I noticed user are unable to capture screenshot on Netflix content with Safari, I wonder which webkit API they use in order to make screen capture result black screen?
I have a Catalyst application that uses (as expected) MPNowPlayingInfoCenter to set the now playing info and MPRemoteCommandCenter to get the media events for play/pause/stop/favorite/etc.
The code is shared on iOS, tvOS and watchOS and it works correctly there. It seems not to work on macOS (app is compiled as a Catalyst application) on Big Sur (and Monterey, fwiw). Media keys on the keyboard starts the Music app, the music part of the control center do not show now playing info (nor the media controls there send messages to the app).
I seem to remember that it used to work in Catalina (at least the media key part) and for sure it used to work in a precedent version of the same app that used to be an UIKit one.
Is this a bug (worth a feedback to Apple) or something wrong on my side? I forgot some magic capability for macOS? App is sandboxed and uses hardened runtime, in case this is significant.
Thank you for any hint!
Post not yet marked as solved
We've been developing a web app that uses WebAudio (specifically, AudioBufferSourceNode) to produce closely synchronised audio on desktop and mobile devices.
In recent testing on Chrome (97) on iPhone (15.2.1), we sometimes see a tab get into a state where it imposes extreme delay (we've seen up to ~1500ms) on audio output. This applies both to buffer-source playback and to trivial OscillatorNode-generated beeps. The audio eventually emerges intact from the speaker, but it's as if a 1500ms delay node has been introduced. It doesn't seem to be a hardware state; playback from Safari at those times is unaffected.
We don't yet have a reliable procedure for reproducing this. It seems to happen more readily when we put an audio-producing tab into the background for a while (say, 15 minutes or more) then wake it up again. We are usually testing with two or more tabs running the same app, so maybe that's part of the trigger too.
Our main question for this forum is: what can we do to diagnose how that extra delay is happening?
Or, alternatively: is there some kind of reset of the audio framework that should be able to force playback back to normal after getting into this state?
We would of course also be very grateful for pointers to anywhere that this situation has already been discussed. It doesn't seem to have cropped up before in these forums.
Post not yet marked as solved
Dear Sirs and Madams,
probably I'm wrong here but maybe you know where I can find a picture of current iPad models. My junior enterprise team would like to conduct a study focusing on the wishes of young employees. This will involve a raffle for an iPad among the participants. The survey will be announced and distributed publicly on social media. We would also like to show the first prize, i.e. an iPad, in the post. Does Apple have any photos of the products for such purposes that we can download and include there? We do not want to violate any copyright regulations.
Your advice would help me a lot.
Best wishes from Germany,
Nathalie
Post not yet marked as solved
I don't know how to take out SUBTITLE file.
Post not yet marked as solved
UIImageWriteToSavedPhotosAlbum is not working reliably for me.
It seems to work about a third of the times I call it.
When I say does not work, I mean the callback is not called, and it silently returns
When I use the code snipped below I get the results:
Call UIImageWriteToSavedPhotosAlbum
Called UIImageWriteToSavedPhotosAlbum
If I call it twice in a row sometimes the first call works, never the second.
Neither of the print statements in the callback are executed
class ImageSaver: NSObject {
func writeToPhotoAlbum(image: UIImage) {
print("Call UIImageWriteToSavedPhotosAlbum")
UIImageWriteToSavedPhotosAlbum(image, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)
print("Called UIImageWriteToSavedPhotosAlbum")
}
// https://www.hackingwithswift.com/example-code/media/uiimagewritetosavedphotosalbum-how-to-write-to-the-ios-photo-album
@objc func image(_ image: UIImage, didFinishSavingWithError error: NSError?, contextInfo: UnsafeRawPointer) {
if let error = error {
// we got back an error!
print("Error: \(error.localizedDescription)")
} else {
print ("Image saved")
}
}
}
Post not yet marked as solved
CVPixelBuffer.h defines
kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange = '420v', /* Bi-Planar Component Y'CbCr 8-bit 4:2:0, video-range (luma=[16,235] chroma=[16,240]). baseAddr points to a big-endian CVPlanarPixelBufferInfo_YCbCrBiPlanar struct */
kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange = 'x420', /* 2 plane YCbCr10 4:2:0, each 10 bits in the MSBs of 16bits, video-range (luma=[64,940] chroma=[64,960]) */
But when I set above format camera output, and I find the output pixelbuffer's value is exceed the range.I can see [0 -255] for 420YpCbCr8BiPlanarVideoRange and
[0,1023] for 420YpCbCr10BiPlanarVideoRange
Is it a bug or something wrong of the output?If it is not how can I choose the correct matrix transfer the yuv data to rgb?
Post not yet marked as solved
I know that if you want background audio from AVPlayer you need to detatch your AVPlayer from either your AVPlayerViewController or your AVPlayerLayer in addition to having your AVAudioSession configured correctly.
I have that all squared away and background audio is fine until we introduce AVPictureInPictureController or use the PiP behavior baked into AVPlayerViewController.
If you want PiP to behave as expected when you put your app into the background by switching to another app or going to the homescreen you can't perform the detachment operation otherwise the PiP display fails.
On an iPad if PiP is active and you lock your device you continue to get background audio playback. However on an iPhone if PiP is active and you lock the device the audio pauses.
However if PiP is inactive and you lock the device the audio will pause and you have to manually tap play on the lockscreen controls. This is the same between iPad and iPhone devices.
My questions are:
Is there a way to keep background-audio playback going when PiP is inactive and the device is locked (iPhone and iPad)
Is there a way to keep background-audio playback going when PiP is active and the device is locked? (iPhone)
Post not yet marked as solved
Just curious about the possibility of malware in images and videos on iPhones. A) are there malware protections in place in the photos app / library to prevent images and videos that contain malware from getting in. B) if not is it possible for my app which uses Picker(s) to pass infected images / videos through to our cloud storage?
Post not yet marked as solved
App getting crashed after updating OS version to OS 15.1 at the time of first time launch, and after crash it works fine. In earlier version like in 15.0 it was working fine.
While Debug I found in the first time in audio video permission app getting stuck in below code.
if ([AVCaptureDevice respondsToSelector:@selector(requestAccessForMediaType: completionHandler:)]) {
[AVCaptureDevice requestAccessForMediaType:AVMediaTypeAudio completionHandler:^(BOOL granted) {
if (granted) {
dispatch_async(dispatch_get_main_queue(), ^{
});
} else {
}
}];
} else {
}
Post not yet marked as solved
Hi everyone,
I have an app that uses the front-facing TrueDepthCamera for functionality. I.e., taking a photo is essential for functionality.
My problem, as quoted from App Store review team, is as follows:
App crashed when we tapped to take a picture
Review device details:
Device type: iPad
OS version: iOS 15.1
I have tested this app on iPhone 13, 12, and 11 successfully. I intended to make this an iPhone ONLY app (changed hardware requirements in info.plist. Didn't change target deployment info though... i.e. iPad still selected there).
I have spent hours trying to figure out the following: is there any way to restrict an app to iPhone only for testing and publishing?
I am a solo developer who has spent lots of time on trying to make this a reality, and am unfortunately stuck on this issue. All help is appreciated!
Post not yet marked as solved
Someone can help me to understand why I'm receiving this issue "Rejection Binary":
5. 2.3 Legal: Intellectual Property - Audio/Video Downloading
My APP there is no way to download any kind of file. The APP just consume an API and has a player button. I really don't know why I'm receiving this message.
We are a radio broadcasting station in Brazil. And we are trying to put our station online through the app.
Post not yet marked as solved
I have a web application that uses the mediarecorder API to record and show video. For short videos, it works fine.
For videos of 1 minute or more on IOS, the web page reloads (with a generic error message flashing right before it loads). There are no errors in the console.
Long videos work fine in Mac Safari, but also fail on IOS Chrome.
It's clearly some sort of IOS resource issue.
Has anyone successfully used the mediarecorder API to record and then play longer videos on IOS?
Note that the crash happens shortly after this line of code which I've seen in countless mediarecorder examples:
video.src = URL.createObjectURL(new Blob(blobs, { type: mediaRecorder.mimeType }));