There's a weird bug in my app. I'm using AVAudioPlayer to play sounds (multiple instances of it), the sound works perfectly through headphones, but using the app without headphones produces no sound from the speaker. All of the audio clips are AAC encoded.
I have tried setting the AVAudioSession properties both through the Objective-C API ([AVAudioSession sharedInstance]) and the C API, but none of the the options seem to work.
If your Android loudspeaker won't work, restart the device and check for updates. Additionally, reset the sound settings, and disable Bluetooth and Do Not Disturb mode. If the issue persists, remove the case, clean your speaker grills, enter Safe Mode, and reset your settings.
Check sound settingsCheck to make sure your audio devices aren't muted and haven't been disabled. Select and hold (or right-click) the Speakers icon on the taskbar, and then select Open Volume mixer. Note: If you don't see Speakers displayed, it may be in the overflow area. Select Show hidden icons to check there.
No sound in one app First, reboot your computer. Confirm the program's volume isn't turned down or muted. In browsers like Chrome and Firefox, each tab can be muted individually—right-click a tab to see its status. (The option will say “Unmute tab” if currently silenced.)
If you can't hear any sounds from a specific app or some apps, the problem may be in your Notification settings. Make sure that you turn on Allow Notifications and Sounds. You can check by going to Settings > Notifications and choosing the app.
accepted answer (in ios7) did not work for me, the following code did work. (i do not have enough points to comment, posting this as separate answer)
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord
withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker
error:nil];
ISSUE on iPhone - when sound was very low - seemed it was coming out the phone ear piece (not headphone jack) instead of bottom speaker - change to DEFAULT TO SPEAKER
//http://stackoverflow.com/questions/3104562/avaudiorecorder-avaudioplayer-sound-output-on-internal-speaker-how-to-chang
UInt32 doChangeDefaultRoute = 1;
AudioSessionSetProperty (
kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,
sizeof (doChangeDefaultRoute),
&doChangeDefaultRoute
);
For those of you using Swift Syntax
...
Below worked for me.
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: AVAudioSessionCategoryOptions.DefaultToSpeaker)
}
catch {
print("can't default to speaker ")
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With