I am using AVAudioEngine, I have a stereo wav file that I want to use with an AVAudioEnvironmentNode but it requires the input source is mono otherwise it will not spatialize the sounds.
Is there some way I can convert the stereo input to mono dynamically, maybe using an avaudiomixernode or something else? It looks like maybe I can use AVAudioConverter to convert the original buffer, but I want to be able to just add a node in the AVAudioEngine graph that can convert it to mono if that is possible, rather than having to convert the input buffer explicitly.
So something like:
WAV -> AVAudioPlayerNode -> Stereo to mono node -> AVAudioEnvironmentNode
Post
Replies
Boosts
Views
Activity
I'm seeing a decent number of crash reports from our app where SceneKit is crashing internally relating to SCNPhysicsField. The stack looks like:
objc_msgSend
-[SCNPhysicsField _removeOwner]
-[SCNNode dealloc]
AutoreleasePoolPage::releaseUntil(objc_object**)
-[UIApplication _run]
UIApplicationMain
main
start
It must be that I am removing a node that has a physics field on it and it randomly crashes.
Probably threading related? Anyone know if there is a workaround, maybe setting physicsField to nil first before trying to remove the node?
Thanks
How do you change the monthly plan? I don't see anywhere in the developer accounts pages to do it or in app store connect. The only things I see in developer accounts is a services list with a weatherkit item, but it just shows usage numbers, no option to upgrade to a different plan.
If you exceed the monthly quota in your WeatherKit plan what happens when you make an API call (Swift SDK), does it just error out? Will Apple give you some grace period to upgrade your quota to a larger value before stopping you from being able to make queries?
Does WeatherKit work for users in China? Some of our APIs to fetch weather data from other sources have been blocked in China, we are hoping WeatherKit will work as a replacement for them (we are using the Swift APIs to integrate with WeatherKit).
Hopefully calling WeatherKit using the Swift APIs inside China from an iOS device will return data successfully and not fail.
Thanks.
Why does the documentation say this field returns the intensity of precipitation in UnitSpeed, this seems confusing. Shouldn't the amount of precipitation be an amount like inch/hr, mm/hr why would the value be in speed?
The old dark sky documentation for this field shows the units were returned in inches/hour
If you use the iOS16 Swift WeatherKit API you can get the weather data attribution logo doing something like:
// Skipping full syntax for example
let attribution = WeatherService.shared.attribution
// A URL to an image you can show along with the weather data
attribution.combinedMarkLightURL
What about if you are not using the iOS16 WeatherKit wrappers e.g. you are using the REST API on your own server to return data. The API docs show a providerLogo/providerName parameter in the metadata returned from the service, but they don't seem to be populated right now.
Is it ok just to use a unicode Apple logo to make a string instead like:
Weather
Also in the API there is a metadata object returned in each dataset e.g. current, daily, hourly which each has an attributionURL field, will all those values always be the same or we might have to display multiple URLs for data sources, the Swift example seems to just have one attribution object.
The documentation lists the number of calls per month you can make for the different pricing tiers here: https://developer.apple.com/weatherkit/get-started/ but are there going to be any per second/minute/hour rate limits on calls to the API like with other weather service APIs.
For example maybe you get 1,000,000 calls per month but there is some limit like 5 calls per second or 10,000 calls per hour imposed by the APIs?
Also what happens if you go over your allowed call limit for the month, will the API just return an error like HTTP 402 or you will get a warning for a period of time? Would you be able to buy extra calls for the month without having to upgrade to a new tier, assuming maybe you are experiencing a temporary increase in traffic.
Hi - I don't see anything in the documentation about which regions of the world the API will support e.g. US, Europe. I see there is an /api/v1/availability you can call but is there some rough guidelines around what areas are supported and which aren't.
Thanks
Mark.
I'm not sure which combination of iOS/XCode/Mac OS is causing this issue, but all of a sudden when I try to run our SceneKit app and the "Scheme -> Diagnostics -> Metal -> API Validation" setting is turned off the scene won't render and the console is just full of the following errors:
Execution of the command buffer was aborted due to an error during execution. Invalid Resource (00000009:kIOGPUCommandBufferCallbackErrorInvalidResource)
[SceneKit] Error: Main command buffer execution failed with status 5, error: Error Domain=MTLCommandBufferErrorDomain Code=9 "Invalid Resource (00000009:kIOGPUCommandBufferCallbackErrorInvalidResource)"
)
If you run the app outside of xcode it's fine, also enabling the "API Validation" option stops the issue.
One of my schemes has this option disabled since the project began and never had an issue before. Just throwing this out there incase someone else has spent hours of their life trying to figure out why this is not working for them.
Also you can just create a new SceneKit project and turn that diagnostic option off and the app won't render anything.
Hi - I have an auto-renew subscription, for some reason when the user looks at their subscriptions in the iOS subscription list the subscription shows the productId as the name e.g. com.company.app.subscriptonName not the localized string e.g. "Foo Monthly Subscription".
I have other subscriptions and they all works as expected and show the localized name.
The one that is showing the productId is configured the same as the others as far as I can tell, any reason why this is happening and how to fix it?
Thanks.
Hi,
I am trying to test my subscription upgrade/downgrade path on a device. I added a test user to the sandbox section of Settings - App Store and can purchase subscriptions using that test user no problem in my app.
However, if I click on "Manage" on the sandbox user to see the list of subscriptions, when I try to upgrade/downgrade the purchase UI that iOS shows tries to use my actual personal account instead of the sandbox user, so I can't complete the transaction.
Looks like a bug in the sandbox testing flow in iOS, but any way around it? Right now I just simulate updates from apple on my backend to make sure my app behaves as expected, but I would like to actually get some "real" data from Apple.
I'm testing an auto renew subscription in the sandbox, one scenario I am testing is to make sure I can handle if I accidentally show the user the purchase button for a subscription they already purchased.
In the sandbox when the user clicks buy iOS pops up an alert saying the user already has the subscription, which is good, and doesn't charge again but then I receive one event for every subscription renewal the user has ever had, basically all their previous purchase history via:
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
Is this expected behaviour in production, or just a sandbox quirk?
Thanks.
I added some logging to my widget and in console.app I can see that the widget getTimeline method is being called even when the users phone is locked. It's been over an hour with my phone locked and the widgets getTimeline method is still being called when the timeline expires.
I want the widget to refresh as little as possible when not visible because every call to our API costs money, I don't want widgets just sitting there hitting our server even if someone isn't looking at it.
Is there any way to disable this functionality and reduce the number of getTimeline calls when the widget is not visible or the phone is locked?
NOTE: I'm not running the app via xcode just incase that triggers some more frequent update path.
I added an intent definition to my widget, it has a type of "duration" and I set the minimum and maximum values to a range e.g. 1 -> 60.
When I edit my widget on the homescreen the intent is shown in the edit menu but I am able to enter numbers outside of the minimum and maximum values, I would expect the UI should prevent this.
Is there some extra code I need to add to get the UI to respect the minimum/maximum values I specified in the .intentdefinition file or is this a bug?
Running ios:beta7, xcode: beta6
Thanks.