SoundPool Android не работает

Теперь проблема в том, что когда я поворачиваю телефон, музыка начинается снова, как я могу предотвратить это?

На самом деле я хочу запустить приложение в альбомной ориентации и заблокировать его таким образом.

вот код:

package elfinha.app;

/**
 * Created by quest on 01/06/14.
 */

import android.media.AudioManager;
import android.media.SoundPool;
import android.media.SoundPool.OnLoadCompleteListener;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;

   package testapps.emilyssong;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;


public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    MediaPlayer dontcallme = MediaPlayer.create(this, R.raw.dontcallmedarling);
    dontcallme.start();
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

person AND4011002849    schedule 01.06.2014    source источник
comment
SoundPool лучше подходит для файлов с МАЛЕНЬКИМИ, С МАЛЕНЬКОЙ ЗАДЕРЖКОЙ (т. Е. Звуковыми эффектами). Я думаю, ваш лучший друг по воспроизведению песни - это MediaPlayer   -  person Phantômaxx    schedule 01.06.2014


Ответы (2)


@Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
     MediaPlayer dontcallme = MediaPlayer.create(this, R.raw.dontcallmedarling);
     dontcallme.start();
}

Ваша основная проблема в том, что MediaPlayer воссоздается при повороте устройства. Блокировка исправит это, но на самом деле это всего лишь бандаж, потому что вы не понимаете проблему. Если музыка воспроизводится только один раз при открытии, вы можете установить переменную, которая будет иметь значение true при воспроизведении, а затем не будет воспроизводиться при вращении, если снова не станет false.
Наверх .....

boolean isPlaying=false;

В onCreate ...

if(!isPlaying){ 
     MediaPlayer dontcallme = MediaPlayer.create(this, R.raw.dontcallmedarling);
     dontcallme.start();
     isPlaying=true;}

Затем вы можете легко настроить прослушиватель, чтобы он снова переключался, если он ложится, после того, как он будет выполнен или уйдет.

person a54studio    schedule 01.06.2014

Я рекомендую использовать MediaPlayer, например:

package testapps.emilyssong;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;


public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    MediaPlayer dontcallme = MediaPlayer.create(this, R.raw.dontcallmedarling);
    dontcallme.start();
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}
person Amr Elsekilly    schedule 01.06.2014
comment
Когда я поворачиваю телефон, музыка снова начинает звучать, как я могу это остановить? - person AND4011002849; 02.06.2014