Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to find a replacement for deprecated method?

I am new to Android programming.

I have been following a tutorial on creating a Music Player from this website

The tutorial calls for a setAudioStreamType method from MediaPlayer Class which is deprecated. Which method replaces this deprecated method in particular? And, is there a source where we can find all deprecated methods and its current alternative?

Here is the code I have where there is a warning about a deprecated method:

public void  initMusicPlayer(){
    //set player properties
    player.setWakeMode(getApplicationContext(),
            PowerManager.PARTIAL_WAKE_LOCK);
    player.setAudioStreamType(AudioManager.STREAM_MUSIC);
    player.setOnPreparedListener(this);
    player.setOnCompletionListener(this);
    player.setOnErrorListener(this);
}
like image 418
noviceUser Avatar asked Dec 07 '22 17:12

noviceUser


2 Answers

Use setAudioAttributes(AudioAttributes) instead of setAudioStreamType().

You can see these details in the Android Developer documentation.

https://developer.android.com/reference/android/media/MediaPlayer.html#setAudioStreamType(int)

To follow the latest changes, you can check the Android Developer blog: https://android-developers.googleblog.com/

like image 109
Bob Avatar answered Dec 10 '22 06:12

Bob


If you press CTRL+left click on a method, you find the method declaration. That is where a method is created with its contents and javadoc. Javadoc for deprecated methods often include a @deprecated annotation where it mentions the new API and when it was deprecated.

In addition to the javadoc information can also be found in the reference at developer.android.com.

Live example: the Camera class. At the end of the class javadoc it has this:

/**
 * (other declarations, and last)
 * @deprecated We recommend using the new {@link android.hardware.camera2} API for new
 *             applications.
 */

There you also get a link to the new alternative. If you check the reference at developer.android.com you can also see when it was deprecated (API) and (if you have a new class) you can see when that was introduced. Android has a lot to manage when it comes to API's and what was introduced when especially considering there is a new API each year.


As for the Javadoc solution, it can be followed as far as you want. If you have class X, but class X is deprecated. There is a javadoc link to class Y, which replaces class X. For some reason class Y is also deprecated. But there is a javadoc link there that leads to class Z.

Above was a basic example of how you can find the newest replacements, even though the replacement for class X is deprecated. Something to keep in mind in ANdroid programming though, is the fact that you may need the deprecated methods to support lower versions on Android.

like image 24
Zoe stands with Ukraine Avatar answered Dec 10 '22 07:12

Zoe stands with Ukraine