Newbee
Newbee

Reputation: 3301

How do I play the default Phone ringtone programmatically?

I have been working on a conference related app. I want to show ringing notification for the incoming call. I have tried with AVAudioPlayer, and it worked fine for custom sounds. My question is, is it possible to get default ringtone from iPhone (user selected tone in settings) and play for my app?

thanks for your valuable suggestions...

Upvotes: 9

Views: 9080

Answers (3)

TALE
TALE

Reputation: 1060

The recommended way is to use CallKit. Your VoIP app will then get a lot of stuff for "free". When you inject an incoming call using CallKit, iOS will automatically play the proper ringtone.

https://developer.apple.com/documentation/callkit

There are a lot of things that CallKit handles for you. Things like:

  • showing a proper incoming call screen when the phone is locked
  • what happens if the user is already on another call
  • "Do not disturb" is on (either driving or sleeping)
  • the phone is set to silent
  • playing the proper ringtone

Upvotes: 1

CReaTuS
CReaTuS

Reputation: 2585

No, no SDK API for get iPhone ringtones.

But you can download those from another links and add to your project

Upvotes: 4

dreamlax
dreamlax

Reputation: 95405

Someone has asked a similar question here but overall it does not appear possible, at least if you want to distribute your application through the App Store. On a jailbroken phone, you may find this answer useful.

Upvotes: 5

Related Questions