2015-05-19 4 views
0

Пожалуйста, у меня возникли проблемы с тем, чтобы эмулятор работал над моим кодом. У меня есть код ниже, и я хочу, чтобы он мог воспроизводить звук, когда я нажимаю кнопку, которую я создал на эмуляторе, но всякий раз, когда я запускаю код, эмулятор не появляется, вместо этого появляется медиаплеер, и звук воспроизводится на свой. Пожалуйста помоги. Есть ли что-то, что я делаю неправильно? Спасибо за вашу помощь.Получение эмулятора для запуска

Ниже мой код

общественного класса Sound расширяет ActionBarActivity {

MediaPlayer Sound; 
private static Button btnsound; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_sound); 
    Sound = MediaPlayer.create(this, R.raw.coins); 
    playsound(); 
} 

public void playSound (View view) { 
    Sound.start(); 
} 

public void playsound(){ 
    btnsound=(Button) findViewById(R.id.button_sound); 

    btnsound.setOnClickListener(
      new View.OnClickListener(){ 
       @Override 
      public void onClick (View v){ 

        Sound.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.menu_sound, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

}

activity.xml

<Button 
    android:layout_width="175dp" 
    android:layout_height="wrap_content" 
    android:text="@string/btnsound" 
    android:onClick="playSound" 
    android:id="@+id/button_sound" 
    android:layout_gravity="center_horizontal" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 

    android:layout_marginTop="154dp" /> 

ответ

0

Конечно звук играет на это самостоятельно, у вас есть внутри onCreate вызов метода playsound(), удалите эту строку и вызвать этот метод внутри кнопки Listener так что он остается, как это:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_sound); 
    Sound = MediaPlayer.create(this, R.raw.coins); 
    btnsound = (Button) findViewById(R.id.button_sound); 

    btnsound.setOnClickListener(
     new View.OnClickListener(){ 
      @Override 
     public void onClick (View v){ 
       playSound(); 
      } 
    }); 
} 
public void playSound() { 
    Sound.start(); 
} 

вы будьте немного беспорядочны с декларациями и функциями, следите.

+0

ОК. Большое спасибо. Это действительно помогло. Я постепенно учусь. Также, если я хочу иметь более одного звука, я должен иметь разные методы для каждого звука или что лучше всего делать. – Shade01

+0

Это хорошая идея, в вашем случае я бы, вероятно, сделал то же самое – codecharles

+0

Спасибо. Наконец он работал так, как должен. – Shade01

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