Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by ben.aten · Apr 06, 2016 at 08:42 AM · audioiphonerecordingspeaker

Audio volume level is too low in iphone, working in ipad

Hi,

We developed a game in Unity5.1.2, having a game for audio song recording with background track playing, when microphone starts recording using Microphone.Start() function, audio volume level of background track playing in the game is too low for iphone devices (tested in iphone 5s) and working fine with ipads.

Included the following fixes for it

1) importing UnitySpeakerFix unity package and called iPhoneSpeaker.ForceToSpeaker ()

2) Checked/Unchecked Prepare iOS for recording option in build settings.

Those fixes doesn't helped out. Could anyone help me to sort this out.

Regards, Ben

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

2 Replies

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by ryan_unity · Apr 19, 2016 at 03:08 PM

Hey,

I tested this on 5.3.4p2, but also on 5.1.2p3 just in case there were any differences in this area.

I downloaded and imported the Plugins folder from https://github.com/cbaltzer/UnitySpeakerFix and it seems to work quite well. Make sure to call iPhoneSpeaker.ForceToSpeaker() after the call to Microphone.Start() and it should force the iPhone speaker to be used instead of the ear piece :)

I hope this helps!

Here's some related posts with similar answers: http://answers.unity3d.com/questions/257240/microphonestart-stops-audio-from-playing-on-ios.html http://answers.unity3d.com/questions/840441/how-to-force-audio-through-iphone-loudspeaker-when.html

EDIT: The plugin uses some deprecated method calls and so here's some changes to make use of AVAudioSession to get the same result (force audio to the speaker). These changes go in the iPhoneSpeaker.m file:

 #import "iPhoneSpeaker.h"
 #import <AVFoundation/AVFoundation.h>
 
 
 void _forceToSpeaker() {
     // want audio to go to headset if it's connected
     if (_headsetConnected()) {
         return;
     }
 
     AVAudioSession *session = [AVAudioSession sharedInstance];
     NSError *error = nil;
     BOOL success = [session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];
 
     if (!success) {
         NSLog(@"Error forcing audio to speaker: %@", error);
     }
     else {
         NSLog(@"Forcing audio to speaker");
     }
 }
 
 bool _headsetConnected() {
     AVAudioSessionRouteDescription* route = [[AVAudioSession sharedInstance] currentRoute];
     for (AVAudioSessionPortDescription* desc in [route outputs]) {
         if ([[desc portType] isEqualToString:AVAudioSessionPortHeadphones])
             return true;
     }
     return false;
 }
Comment
Add comment · Show 2 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image ben.aten · Apr 21, 2016 at 06:06 PM 0
Share

Is there any specific settings in player settings apart from de-selecting Prepare iOS for recording option. Is there any Audio specific setting have to make. I am recording audio with a BG track playing, the BG tracing which is playing in the background is too low. Its my issue. After recording, recorded voice is hearing fine, but BG audio level is low.

avatar image ben.aten ben.aten · Apr 28, 2016 at 05:26 PM 0
Share

Call iPhoneSpeaker.ForceToSpeaker() after completing recording and start playing recorded audio. In Build settings - player settings - prepare iOS for Recording - unchecked, to play audio's loudly in iphone device.

In Edit - Player settings - Audio - check audio setted as sterio or others ins$$anonymous$$d of mono.

Thanks Ryan for all updates and help.

Regards, Ben

avatar image
0

Answer by yester30 · Sep 19, 2019 at 12:58 PM

If anyone passing by wants to know how to detect airpods activated & linked to the phone, I managed using those cases:

 bool _headsetConnected() {
         AVAudioSessionRouteDescription* route = [[AVAudioSession sharedInstance] currentRoute];
         for (AVAudioSessionPortDescription* desc in [route outputs]) {
             if ([[desc portType] isEqualToString:AVAudioSessionPortHeadphones])
                 return true;
             if ([[desc portType] isEqualToString:AVAudioSessionPortBluetoothA2DP])
                        return true;
             if ([[desc portType] isEqualToString:AVAudioSessionPortBluetoothHFP])
                        return true;
             if ([[desc portType] isEqualToString:AVAudioSessionPortHeadsetMic])
                     return true;
         }
         return false;
         }



Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

47 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

How to force audio through iPhone loudspeaker when microphone is being used? 1 Answer

DSPBuffer Size from script 1 Answer

Delay with Microphone.Start 1 Answer

Audio not coming out of speakers 1 Answer

Audio.Pitch not smaller than 0.1f on the iPhone? 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges