0

私はアンドロイド開発に不慣れです。再生・一時停止・停止の3ボタンのミュージックプレーヤーを作りました。アプリのアイコンをクリックすると、スプラッシュが実行され、3 秒後に消えます。再生をクリックすると、他のボタンが完全に機能します。しかし、音楽を再生してホーム画面に戻ると音楽が再生されますが、アプリのアイコンをもう一度クリックすると新しいインスタンスが開始され、再生ボタンをクリックすると別の曲が開始され、現在 2 つの曲が実行されていることを意味します。

もう1つの問題は、電話を受けたときに曲が再開し、電話を選んでもこれらの問題を解決する方法が分からないことです。

音楽を再生するための私のコードは

MediaPlayer mySong;
    Button playButton,pauseButton,stopButton,creditsButton;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activitymain);

        playButton=(Button) findViewById(R.id.play);
        pauseButton=(Button) findViewById(R.id.pause);
        stopButton=(Button) findViewById(R.id.stop);
        creditsButton=(Button) findViewById(R.id.credit);
        mySong=MediaPlayer.create(StartingPoint.this, R.raw.song);

        playButton.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                mySong.start();
            };
        });

pauseButton.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                mySong.pause();
            };
        });
stopButton.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        mySong.pause();
        mySong.seekTo(0);
    };
});

私のマニフェストファイルは

 <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="9" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        >
        <activity
            android:name="com.simplyitsols.hanumanchalisa.Splash"
            android:label="@string/app_name" 
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.simplyitsols.hanumanchalisa.StartingPoint"
            android:label="@string/app_name" 
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="com.simplyitsols.hanumanchalisa.STARTINGPOINT" />
                <category android:name="android.intent.category.Default" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.simplyitsols.hanumanchalisa.Credits"
            android:label="@string/app_name" >
        </activity>
    </application>
4

3 に答える 3

2

サービスを作成する必要があります: http://developer.android.com/reference/android/app/Service.html

それを達成したら、必要なことを行うために、アクティビティの onPause と onResume を実装する必要があります。onPause は、家に帰るか、電話がかかってきたときにトリガーされます。OnResume は自明です :)

http://developer.android.com/guide/components/fundamentals.html

于 2013-06-24T08:41:41.490 に答える
0

このチュートリアルによると http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/

このコードをアクティビティのクラスに配置する必要があります。

@Override
public void onDestroy(){
    super.onDestroy();
    mp.release();
...
}
于 2013-07-26T05:35:34.590 に答える