`AssetService:SearchAudio` can give audio that you don't have permission to play, making it nearly useless

In My Movie, we let players play audio from AssetService:SearchAudio. I track LogService.MessageOut to give a popup if a user doesn’t have access to use a given sound. Through this, I have discovered that the results of AssetService:SearchAudio very very frequently give you audio that cannot be played in the place. It should never do this.

4 Likes

I’d argue that it should still be able to return audio which is not granted permission to be played because there are solid use-cases for using the API in plugins. Having conflicting behaviour between the API being used in plugins vs. in experience would also be odd and confusing for many developers. Plus, in some rare cases, the API may be used for searching audio in-experience but not necessarily playing it; for example, a song suggestion feature which allows players to suggest songs to the developer to implement (playing the song would be nice to have in this case but certainly not necessary so it is a feasible usage of the API).

Perhaps an option could be provided that omits these results, but it shouldn’t be the only behaviour for the API. The current behaviour should at least remain as an option for the many use-cases that rely on it.

2 Likes

Hey @Kampfkarren

This is the intended functionality for the SearchAudio method. It is the same as searching for audio on the Creator Store.

That being said I think this is a great idea to return only audio that can be used in the experience. We are planning on making changes in the future that will make free audio available in experiences without the creator of the experience needing the audio in their inventory. When this is added it should reduce the number of issues you get from this method. Unfortunately I don’t have a date to share with you just yet on when we expect to release this change.

4 Likes

It’s great that the number of issues will be reduced, but can we get an alternative method of only pulling audios that the experience can actually play? If I want to offer audio searching for users in a game, I don’t want to show them an audio just for the game to tell them “nah not that one” when they try to play it. Audios that can’t be played are entirely irrelevant to that specific use case.