2013-08-19 2 views
-1

У меня есть четыре кнопки моего главного меню для моей игры для Android. По моему варианту, есть и выключено. Когда пользователь нажимает кнопку включения, музыка должна воспроизводиться, когда я начинаю нажимать кнопку воспроизведения. И если пользователь нажимает кнопку «выключено», музыка не будет воспроизводиться. Но по умолчанию музыка будет воспроизводиться.Вкл./Выкл. Музыка в Android

Я попытался создать код самостоятельно, если пользователь нажмет кнопку on, есть переменная sign, которая будет установлена ​​в 1, и это значение перейдет к игре. Если значение знака равно 1, музыка начнется; если 0, музыка не будет воспроизводиться. Но после этого, после того, как я щелкнул, это приводит к «FORCE CLOSE» моей игры.

У меня есть этот код для моей деятельности Опции:

musicOn.setOnClickListener(new OnClickListener(){ 

    @Override 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 

    Intent put = new Intent(getApplicationContext(), Level1.class); 

    musicSwitch = 1; 
    Bundle cargo = new Bundle(); 
    cargo.putInt("sign", musicSwitch); 

    put.putExtras(cargo); 
    } 
}); 

musicOff.setOnClickListener(new OnClickListener(){ 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

    Intent put = new Intent(getApplicationContext(), Level1.class);    
    musicSwitch = 0; 
    Bundle cargo = new Bundle(); 
    cargo.putInt("sign", musicSwitch); 

    put.putExtras(cargo); 
    } 

}); 

И это одно для моей level1 деятельности:

int value=1; 

Bundle cargo = getIntent().getExtras(); 
value = cargo.getInt("sign"); 

if(value==1){ 
MediaPlayer mPlayer = MediaPlayer.create(Level1.this, R.raw.sounds); 
mPlayer.start(); 
mPlayer.setLooping(true); 
} 
+1

Вы должны быть более конкретным и указать код – Pavlos

+0

добавленных кодов :) Извините за это. – pingboo23

+0

можете ли вы разместить логарифм? –

ответ

0

пожалуйста, напишите LogCat быть более точным.

Я думаю, что это усилие закрытия, потому что вы не сказали ему, что делать, когда значение равно 0.

if(value==1){ 
MediaPlayer mPlayer = MediaPlayer.create(Level1.this, R.raw.sounds); 
mPlayer.start(); 
mPlayer.setLooping(true); 
} else if(value == 0){ 
mPlayer.stop(); 
} 

и я рекомендую вам сделать MPLAYER статический не только если заявление.

0

Вы создаете цели, но ничего не делая с ними. Я думаю, что вы предполагаете, что

Intent put = new Intent(getApplicationContext(), Level1.class); 

позволит добавить дополнительный к Intent, который первоначально запущенной вашей деятельности, но это не так. Это намерение, которое вы создали, ничего не сделает, если вы не используете его для запуска нового действия. Он будет просто сбрасываться GC после завершения метода onClick.

Итак, когда вы запустите getIntent().getExtras();, он не включит дополнительные дополнения, добавленные вами в методе onClick.

Лучше использовать статическую переменную-член, к которой могут быть доступны как представление, так и действие. И если вы хотите, чтобы он сохранялся между сеансами игры, сохраните его в SharedPreference.

Смежные вопросы