Alarm app for iPhone sdk with Music - iphone

I want to create a Alarm clock app. And as i know for this we have to use NSLocalNotification which play music for 30 second, As apple says sound file must be in Main bundle for Notification. How can i play sound file from Music Library ? Most of alarm app on App store are using Music Library ? Any Help Will be really appreciate...

Having built such an app, the answer is that you can't play from the lib for the notification sound, only if they acknowledge the notification and launch your app.

The alternative way to do a short term or overnight alarm app is to declare your app to be a background aware audio app in UIBackgroundModes, and start playing silence in the app using Audio Queues or the RemoteIO Audio Unit. Then just mix your alarm sound into the silence as PCM samples at the appropriate time. You may have to first convert music from the music library into uncompressed samples using AVFoundation.
This technique will burn the user's battery a lot faster than using Notifications though, and may be disabled if the user uses the music player (etc.) or other audio app, so should not be used for alarms that are critical or a long time away in time.

Related

Multipeer Connectivity audio streaming stop work on background

I'm doing some audio streaming with iOS 7's Multipeer Connectivity framework. The streaming works well, but when I put the app on background it stops working.
Someone can tell me if this is a framework limitation, or I'm doing something wrong?
And, if it is a framework limitation, is it possible to do something to avoid this?
Can I use Background Tasks, to keep streaming and music working on background?
Is possible do this? If is not possible, do any alternatives exist for MultiPeer audio streaming between iOS devices?.
I´m using this example: https://github.com/tonyd256/TDAudioStreamer.
Explained on this page: http://robots.thoughtbot.com/streaming-audio-to-multiple-listeners-via-ios-multipeer-connectivity.
Thanks a lot!
On the Apple documentation for playing audio in the background (scroll down a bit). Some relevant paragraphs:
When the UIBackgroundModes key contains the audio value, the system’s media frameworks automatically prevent the corresponding app from being suspended when it moves to the background. As long as it is playing audio or video content or recording audio content, the app continues to run in the background. However, if recording or playback stops, the system suspends the app.
You can use any of the system audio frameworks to work with background audio content, and the process for using those frameworks is unchanged.
This means that iOS should recognize that you're playing audio through Core Audio, and keep your app unsuspended, as long as you've correctly configured your app for playing audio in the background.
Because your app is not suspended while playing media files, callbacks operate normally while your app is in the background. In your callbacks, though, you should do only the work necessary to provide data for playback. For example, a streaming audio app would need to download the music stream data from its server and push the current audio samples out for playback. Apps should not perform any extraneous tasks that are unrelated to playback.
You should be able to operate normally as long as your app is still playing audio, and is allowed to do what it needs to in order to continue playing audio. This means that you should be able to continue to use MPC in the background to receive the audio data and play it.
Be sure to read the entire documentation on the subject, especially regarding Audio Sessions.
iOS devices get limited cpu cycles for explicit purposes when they have been backgrounded by the user.
According to Apple's documentation on multitasking and execution in the background, the following types of apps are supported, but have to be explicitly declared:
Apps that play audible content to the user while in the background, such as a music player app
Apps that record audio content while in the background.
Apps that keep users informed of their location at all times, such as a navigation app
Apps that support Voice over Internet Protocol (VoIP)
Apps that need to download and process new content regularly
Apps that receive regular updates from external accessories
Your case falls under Apps that play audible content to the user while in the background, such as a music player app. You can find more information from the link provided above.

iOS: How read playing a real-time music?

I would like to create an audio visualizer, and I had a question:
How can I get the part of the music that plays at a time on the device?
P.S. Example "aurioTouch" similar to what is necessary, but it processes sound from a microphone, and I needed from the device.
If you want to do things with real time audio, then you should have a look at Core Audio

Custom alarm app play sound from media library on interruption by local notification

I want to make custom alarm app which play sound from media library in iphone. Play sound on date selected by the user on interruption by the local notification.
I want app similar to app on app store
Thanks.
Consider reading the iOS App Programming Guide -> App States and Multitasking:
http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html
Read the following part: "Implementing Long-Running Background Tasks" and Playing Background Audio
You can't do that with normal local notifications, as they have a limit of 30 seconds and you cannot let the user choose the file. You have to import it in your app bundle and include it in your code!!!
I really think there is no other way then abusing the background audio playback system to keep your app running in the background, then present a local notification with no sound and play the sound out of a call in your background app with a system library (core audio etc...)

iOS: Play/Stop music in Background at a specific time

I am developing an app which can stop or play a music from iPod or other audio at a specific time even if is in background. Is it possible?
I know that with a local notification can play an audio during 30 seconds, but I need more time. There are application which can do this like TuneIn Radio.
Thank you very much in advance!
Unless it is your app that is playing the music in the background I don't think it is going to be possible. The hardest part is the fact that you can't run an app in the background unless it is playsound, keeping track of the users location or is a voip client.
You can use a local notification, but the allarm sound is restricted to the 30 seconds and you can only stop any audio session if you app gets launched.

How to play a sound while running in the background?

I need to be able to play a sound while running the application in the background.
I tried with UILocalNotifications but the file needs to be part of the bundle, and that will not be the case, as I need to generate the sound files on the fly...
So is there any way that I can play a sound while running in the background?
Thanks.
You can't, unless you continuously play audio and have the appropriate audio session category set for your app... then your app doesn't go to sleep, it continues to run (again so long as audio is playing).
This is part of the design limitations of iOS multitasking.
Apple has allowed people to get away with having a continuously looping blank audio file (AVAudioPlayer loop = -1 with a 1-sec blank CAF file) if the app is primarily audio related and it is obvious to the user that this has battery life implications (and can be disabled by the user), but YMMV... you app can also be rejected for this.