37

Androidでエンターテイメントアプリを開発しています。BGMを流したい、そのためのサービスを利用したい。アプリには 3 つのアクティビティがあり、すべてのアクティビティで音楽を再生する必要があります。また、アクティビティが一時停止されている場合、音楽は一時停止し、破棄されたときに停止する必要があります。誰でもこれを行う方法を教えてもらえますか? リンクや例はありますか?

ありがとうございました。

4

7 に答える 7

68

サービスなしでそれを行う

https://web.archive.org/web/20181116173307/http://www.rbgrn.net/content/307-light-racer-20-days-61-64-completion

メディアプレイヤーを使ったサービスで本気でやるなら

Intent svc=new Intent(this, BackgroundSoundService.class);
startService(svc);

public class BackgroundSoundService extends Service {
    private static final String TAG = null;
    MediaPlayer player;
    public IBinder onBind(Intent arg0) {

        return null;
    }
    @Override
    public void onCreate() {
        super.onCreate();
        player = MediaPlayer.create(this, R.raw.idil);
        player.setLooping(true); // Set looping
        player.setVolume(100,100);

    }
    public int onStartCommand(Intent intent, int flags, int startId) {
        player.start();
        return 1;
    }

    public void onStart(Intent intent, int startId) {
        // TO DO
    }
    public IBinder onUnBind(Intent arg0) {
        // TO DO Auto-generated method
        return null;
    }

    public void onStop() {

    }
    public void onPause() {

    }
    @Override
    public void onDestroy() {
        player.stop();
        player.release();
    }

    @Override
    public void onLowMemory() {

    }
}

マニフェストでこのサービスを呼び出してください .BackgroundSoundService 文字列の末尾にスペースがないことを確認してください

<service android:enabled="true" android:name=".BackgroundSoundService" />
于 2011-11-21T09:57:37.273 に答える
17

ここでのパーティーには遅すぎますが、まだ $0.02 を追加します。Google はユニバーサル ミュージック プレーヤーと呼ばれる無料のサンプルをリリースしました。バックグラウンドで音楽を再生するサービス、非常に役立つのでチェックしてください。プロジェクトへのリンクは次のとおりです
https://github.com/googlesamples/android-UniversalMusicPlayer

于 2016-09-17T08:12:06.263 に答える
6

私はそれを実行するのに問題があり、mp3 ソースで実行するためにいくつかの変更を加えました。ここにBackfrounSoundService.javaファイルがあります。私のmp3ファイルは私の電話のSDカードにあると考えてください。

public class BackgroundSoundService extends Service {
    private static final String TAG = null;
    MediaPlayer player;

    public IBinder onBind(Intent arg0) {

        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        Log.d("service", "onCreate");
        player = new MediaPlayer();
        try {
            player.setDataSource(Environment.getExternalStorageDirectory().getAbsolutePath() + "/your file.mp3");
        } catch (IOException e) {
            e.printStackTrace();
        }
        player.setLooping(true); // Set looping
        player.setVolume(100, 100);

    }

    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d("service", "onStartCommand");
        try {
            player.prepare();
            player.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return 1;
    }

    public void onStart(Intent intent, int startId) {
        // TO DO
    }

    public IBinder onUnBind(Intent arg0) {
        // TO DO Auto-generated method
        return null;
    }

    public void onStop() {

    }

    public void onPause() {

    }

    @Override
    public void onDestroy() {
        player.stop();
        player.release();
    }

    @Override
    public void onLowMemory() {

    }
}
于 2015-09-22T10:16:44.327 に答える
4

この主題に関するHelloAndroidの優れたチュートリアルがあります。実際、それは私がグーグルで得た最初のヒットでした。ここで質問する前にグーグルで検索してみてください。

于 2011-11-21T09:48:08.180 に答える
2

共有する 2 つの優れたリソースを見つけました。他の誰かが Google 経由でこのスレッドに出くわした場合、これが役立つ可能性があります (2018)。1 つはこのビデオ チュートリアルで、実際にサービスがどのように機能するかを確認できます。これは初心者に適しています。

リンク :- https://www.youtube.com/watch?v=p2ffzsCqrs8

その他は、バックグラウンドオーディオプレーヤーで本当に役立つこのWebサイトです。

リンク: - https://www.dev2qa.com/android-play-audio-file-in-background-service-example/

幸運を :)

于 2018-10-21T18:21:10.973 に答える