I'm building an audio application for iOS in Swift.
Every time I connect my bluetooth earphones, it automatically starts playing music from my Music (iTunes) app. I'm on iOS 14.4.
Is it possible to disable this behavior programatically? Or this behavior is preempted from my specific bluetooth earphones?
Is it related to AVAudioSession.RouteSharingPolicy?
Normally only one AirPlay device is selectable in the MPVolumeView when playing audio. However it seems that it is possible to AirPlay to multiple devices since Whaale iOS app does. How might the Whaale app stream to multiple devices?
(I don't care if it uses undocumented APIs, this isn't for App Store purposes.)
This is WHAALE speaking.
There is no API on iOS to do multiroom playback with AirPlay, as you noticed.
We had to implement it from scratch and it took a while.
We have no public API to offer to you.
In my team's iOS app we have a bug when Siri is invoked while our app is running. Siri pops up and the waveform is shown very briefly and appears not to detect one's voice as the waveform remains very flat. Quickly thereafter it begins to list the things you can ask Siri.
We are using Xcode 6.3, tested on an iPad Mini with iOS 8.3 as well as an iPhone 5 with iOS 8.3.
The app never uses the microphone or queries any of the device audio inputs so I can't see this problem attributed to our app using the microphone directly. It does play looping ambient music and has sound effects.
Is there anything specific we should be calling an an interruption to ensure that Siri will work properly? Has anyone experienced similar issues?
This is most likely not related to your app. The iOS SDK doesn't provide a Siri API that could lead to this kind of events.
You may try to pause any ambient music/sounds effects whenever the app goes in background. (in AppDelegate.m)
I'd like to somehow play music from one iOS device simultaneously on another, sort of like AirPlay, but from device to device.
It seems that by leveraging existing BT tech I should be able to make this happen, but I just haven't seen any examples nor have I read anything that suggests it's possible.
Check the following threads which might help to answer your question.
iOS Stream Audio from one iOS Device to Another
How do I stream AVAsset audio wirelessly form one iOS device to another?
Is there a way to tell the iOS simulator which audio device connected to your computer you want it to use?
The simulator seems to pick whatever audio device is last connected to your machine. I've got a USB audio device (fasttrack pro) I use for my main sound playback and then a USB headset I use for my skype calls. More often than not, the simulator's audio is played on the headset instead of my main speakers.
Ok, I found that both the input and output device much match in system sound settings. Often I have them set to different devices. If they don't match, the simulator seems to default to the last connected audio device selected among the input and output devices.
On a related note: if you're like me and don't like interface sounds and therefore uncheck the preference "Play user interface sound effects" (Sound > Sound Effects), you'll need to check it to get sound out of the simulator.
I doubt the simulator has a setting for that, but you can set the main output device in System Preferences > Sound.
Don't know if this will fix your issue, but it fixed mine.
I wanted the iOS simulator to output sound through a device I had connected and not the internal speakers. When I select the System Prefs Sound and selected my device as output, it would not work.
So, I selected the Sound Effects tab from the Prefs - Sound window and selected my device under Play Sound effects Through and presto it worked.
Don't know the in-outs of iphone sound, but apparently mine were being treated as sound effects.
Hope that helps, if not, I gave it a shot.
Open iOS Simulator, under Hardware toolbar you can control Audio Input, Audio Output, and volume as well!
I think it was added at Xcode 9.2, and that it's available only when running simulator with iOS 11 and above
func vibratePhone() {
if (UIDevice.current.model == "iPhone") {
AudioServicesPlaySystemSound(1352)
} else {
AudioServicesPlayAlertSound(1105)
}
}
1352 Is the system sound ID for Vibration and 1105 is for Tock.caf if the user's device is an iPad or an iPod Tock.caf will be played in place of vibration.
Working on an audio project on my studio and still didn't got it working on MOTU Hardware with everything pointing to the interface! All system sounds route properly except the iOS Sim!
Did this workaround:
iOS Sim/OS X -> SoundFlower virtual I/O -> (Any audio program like Logic/Live) -> MOTU HW
This might give you the freedom to route your audio as you please ;)