Setting a sound to fire in the background - avaudioplayer

I want my app to be able to fire a sound file or a series of sound files on a set timer countdown whilst the app is in the background. Has anyone done this and is so how is this achieved?
I don't want a local notification to be fired just the sound file(s).
Any help would be most appreciated.

I would make sure the backgrounding mode is set in the info.plist and then use AVAudioPlayer
or
Use the system sound function (its an AudioToolbox function if I'm correct) without the backgrounding mode in the info.plist

Related

Ableton will only play sound from library but not in workspace

Ableton only plays sounds from the library but not in the workspace.
I can only get sounds to play from the library in Ableton, but when I move something into the workspace it remains mute.
I have the Novation midi keyboard hooked up to it, so it does most things automatically from the keyboard. I tried the keyboard with Arturia and it worked. So I know that it is something in the Ableton area. I have tried the ASIO audio format along with Direct X. I have them both synced to the speaker on my graphics card as my others stopped working, strangely.
Does anyone have any idea what the problem could be?
I think I understand where the confusion is. An .adv file is an instrument preset file. To use it in the Session view, after dragging it onto a MIDI track, you need to create a clip with notes that play the instrument, like in this screenshot:
I agree that it can be confusing that items in the Sounds section are previewed and presented as a small waveform when you click them in the Browser, but then need to be played with notes when you actually use them in the Session view.
I think what it is is that a driver is required for the MIDI. Which means that it has to be on ASIO in the audio settings with the driver selected. On Arturia it just picks the MIDI up so I figured it would be the same. However, with Garritan I was required to install the driver. But, for the Novation midi keyboard designed for Ableton, the MIDI has to be connected to the computer through an audio interface, because for some reason it will not read the driver through the USB connection as Garritan does.

Populating the "Now Playing" screen on watchOS 6

I'm trying to display the currently playing audio from my app in the watches Now Playing app.
I'm streaming the audio using the AVPlayer and set the AVAudioSession category and activated the session.
I've also tried to use the MPNowPlayingInfoCenter without any luck.
Is there another way to provide this information.
And just as I hit post I figured it out!
You also have to setup the MPRemoteCommandCenter. 🤦‍♂️
Leaving this here for future reference.
Please show some code for reference, but MvNowPlayingInfoCentre should work fine.
Take a look at this for more information: https://stackoverflow.com/a/41686834/12149235

Triggering Windows Store background task from Band tile opened events

Is there a good way to trigger a Windows Store background task when a band tile is opened? And are there any examples for working with the band from a background task with the latest SDK? I have seen mentions of the ability to do so but can't find any code examples of this.
I have a scenario where the tile's content is only valid for a short time (~30 seconds) and would like to wake up a background service on the phone while the band's tile is open to update the content as needed.
I was hoping to find an IBackgroundTrigger in the SDK that would do the trick but no luck there. The best I can think of to fill this need would be to have a task that uses a system trigger and hooks up listeners for the tile opened/closed events. This seems like a lot of unnecessary work for the task though and could end up with unnecessary battery usage on the phone.
Thanks,
Tony
I'm afraid that is not possible. As far as I can see from the SDK, the app on the phone has to be running to allow a tile on the band to send an event back to the phone.
An alternative would be to open your app from the Band using a voice command. Would that solve your problem?

Prevent Apple Watch from turning off the screen

I'm writing an extension for the Apple Watch which aim is to guide the user through a set of steps. I don't have the watch to test the extension but I need to be sure that the screen will remain always on until all the steps are completed.
Does anyone can tell me when Apple Watch display is turned off or if there any way to prevent the display from turning off (similar idleTimerDisabled from UIApplication in iOS)?
There is currently no way to programmatically prevent the display from being turned off. Otherwise, we can speculate that as long as the user is interacting with your app, the screen will remain on. Worst case, you'll receive a didDeactivate when the app is suspended and a willActivate when the user wakes it up to continue (assuming the Watch app isn't terminated in between).
As of watchOS 4 you can use this boolean to keep the display on, and this will rotate the UI when the arm is turned.
https://developer.apple.com/documentation/watchkit/wkextension/2868464-isautorotating
Consider HKWorkout.
it ensures that your app appears whenever the user checks their watch
https://developer.apple.com/documentation/healthkit/workouts_and_activity_rings
It seems when the system is using the mic, it forces the screen to stay on — I’ve noticed this even in third party apps that allow sending voice messages. Here is the view that the user sees when screen idling is disabled in this way:
Note that this is a third party app and the screen didn’t turn off even after 2 full minutes!

Force system cursor usage in Flex

Let's say that you're using some black box library (i.e. no source code) that sets your cursor to something when rolling over a certain sprite. You can override that by catching rollOver and rollOut events, blocking propagation and using the CursorManager.
Question: is there a way to tell the CursorManager to use the system cursor?
Obviously, I could feed the CursorManager some "system like" cursor, but this would look weird if the local settings are different from that icon, which is likely to be always.
thank you!
f
You can create your own version of CursorManager - just create file mx/managers/CursorManager.as, copy it's content from default manager (use Ctrl+Shift+T to navigate to it) and change the code.
If you use RSLs then you need to create monkey-patch and load it BEFORE RSLs.
if you embed SDK into code then you can simply compile the app and class will be replaced.

Resources