استفاده از Spotify SDK برای اندروید

امروز میخوام اولین مقاله ام رو با شما به اشتراک بزارم امیدوارم که به دردتون بخوره

سلام دوستان امیدوارم حالتون خوب باشه 🙂

 تصویر استفاده از Spotify SDK برای اندروید

خوب وقت رو بیشتر از این هدر نمیدم و میرم سراغ اصل مطلب

چند وقتیه که Spotify برای اندروید SDK اش رو منتشر کرده و یک سری قابلیت و فیچر داره و من از اونجایی که دیدم در اندروید آموزش چندانی ازش نیست تصمیم گرفتم موضوع اولین مقاله ام این انتخاب کنم

تو این آموزش میخوایم ببینیم چطور میشه با این SDK لاگین کرد به اکانت و بتونیم play list یا track رو پلی کنیم


تو قدم اول نیاز به کلید sha1 داریم که تو اندروید استودیو یا با کامند تو CMD میتونید بگیرید

تو قدم بعدی نیازه که https://developer.spotify.com/ لاگین کنیم داخل اکانتمون تا بتونیم اپلکیشین رو ثبت کنیم و کلید ها رو دریافت کنیم

تو این مرحله وقتی گزینه New Project رو بزنیم اون کلید sha1 و package name و callback uri رو از ما میخواد که callback uri رو اگه ندارید این وارد کنید

my-awesome-app-login://callback
 تصویر استفاده از Spotify SDK برای اندروید

وقتی این کارها رو انجام دادید client id رو بهتون میده و اونو ذخیره کنید

خوب بعد از ایجاد پروژه تو اندروید استودیو از GitHub کتابخونه رو دانلود میکنیم

بعد از دانلود از منوی file>new>new module گزینه import .JAR/.AAR package و تو دیالوگ باز شده لوکیشن فایلمونو بهش میدیم تا ایمپورت بشه

حالا تو فایل build.gradle این کتابخونه ها رو اضافه میکنیم(یادتون نره قند شکن فعال باشه 🙂

  implementation project(':spotify-app-remote')
  implementation &quotcom.google.code.gson:gson:2.8.5&quot
  implementation 'com.spotify.android:auth:1.1.0'

حالا وارد Activity تون میشید و با هم کدهامونو بزنیم, قبل از onCreate متغیر هامونو تعریف میکنیم

private static final String REDIRECT_URI = &quotmy-awesome-app-login://callback&quot
private static final String CLIENT_ID = &quotyour client id&quot
private static final int REQUEST_CODE = 1337; // sample
private SpotifyAppRemote mSpotifyAppRemote;

حالا من یک متد تعریف میکنم با نام spotifyAuth که داخل این متدم کدهای مربوط به لاگین به اسپاتیفای رو مینویسم

public void spotifyAuth() {
    AuthenticationRequest.Builder builder =
            new AuthenticationRequest.Builder(CLIENT_ID, AuthenticationResponse.Type.TOKEN, REDIRECT_URI);

    builder.setScopes(new Strinhttps://virgool.io/@am.jabbarii/d/spgjmmdd1hfsg[]{&quotstreaming&quot, &quotuser-library-read&quot, &quotuser-read-email&quot});
    AuthenticationRequest request = builder.build();

    AuthenticationClient.openLoginActivity(this, REQUEST_CODE, request);
}

در بخش Scopes شما میتونید Scope های که نیاز دارید رو اضافه یا حذف کنید برای مثال من از streaming , user-read-email استفاده کرده ام

استریمینگ برای مجوز پخش اهنگ از اسپاتیفای

user-read-email برای دسترسی به ایمیل کاربر و

خب حالا متد spotifyAuth رو در onCreate فرا می خونیم و در اکتیویتی مورد نظر برای هندل کردن کانکت شدن و یا اینکه کاربر لاگین کرده یا خیر متد onActivityResult رو صدا میزنیم و کد های زیر را مینویسیم

if (requestCode == REQUEST_CODE) {
            AuthenticationResponse response = AuthenticationClient.getResponse(resultCode, data);
            switch (response.getType()) {
                // Response was successful and contains auth token
                case TOKEN:
                    // Handle successful response
                    ConnectionParams connectionParams =
                            new ConnectionParams.Builder(CLIENT_ID)
                                    .setRedirectUri(REDIRECT_URI)
                                    .showAuthView(true)
                                    .build();
                    SpotifyAppRemote.connect(this, connectionParams, new Connector.ConnectionListener() {
                                @Override
                                public void onConnected(SpotifyAppRemote spotifyAppRemote) {
                                    Log.e(&quotMainActivity&quot, &quotConnected&quot);
                                    mSpotifyAppRemote = spotifyAppRemote;
                                }
                                @Override
                                public void onFailure(Throwable error) {
                                    Log.e(&quotMainActivity&quot, error.getMessage().toString());

                                }
                            }
                    );

                    break;

                // Auth flow returned an error
                case ERROR:
                    Log.e(&quotMainActivity&quot, &quotError response&quot);
                    // Handle error response
                    break;

                // Most likely auth flow was cancelled
                default:
                    Log.e(&quotMainActivity&quot, &quot&quot);

                    // Handle other cases
            }
        }

تا اینجای کار ما با موفقیت به اسپاتیفای کانکت شدیم و از اونجایی که مجوز استریمینگ رو هم گرفتیم میتونیم آهنگ یا پلی لیستی رو پخش کنیم حالا برای اینکه آهنگی رو پخش کنیم ما نیاز به آیدی اون اهنگ داریم بعد از پیدا کردن آیدی حالا میتونیم پخشش کنیم

کد های زیر جهت پلی کردن ی موزیک

private void playSpotify() {
    mSpotifyAppRemote.getPlayerApi().play(&quotspotify:track:7l2tmgUhV7Y2aJHjiszifg&quot);
    // Subscribe to PlayerState
    mSpotifyAppRemote.getPlayerApi()
            .subscribeToPlayerState()
            .setEventCallback(playerState -> {
                final Track track = playerState.track;
                if (track != null) {
                    Log.d(TAG, track.name + &quot by &quot + track.artist.name);
                }
            });
}

با این کد ما با موفقیت Track Mr. Prefectly Fine (Taylor’s Version) رو پخش کردیم

لینک پروژه تو Github

امیدوارم این آموزش براتون مفید واقع شده باشه

اگه سوالی یا نظری و … داشتید میتونید زیر همین پست بزارید!

[ لینک منبع ]

  1. اولین نفری باشید که دیدگاه خود را ثبت می کند!
« معرفی چند افزونه کارراه‌بینداز برای توسعه‌دهندگان وردپرس
کلبه ای در بهشت »