2017-02-13 8 views
0

Я просто хочу играть в mp3-файл, когда я нажимаю кнопку в студии Android.Play Sound OnClick Android

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

!!!!! СПОСОБ 1:

Я объявил:

SoundPool mySound; 
int soungId; 

инициализирую:

mySound = new SoundPool(1, AudioManager.STREAM_MUSIC,0); 
soungId = mySound.load(this, R.raw.asd,1); 

затем использовать слушатель действия:

button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     mySound.play(soungId,1,1,1,0,1); 
    } 
}); 

!!!!! МЕТОД 2:

Я заявляю:

MediaPlayer mp = null; 

Я использую Слушатель:

button.setOnClickListener(new View.OnClickListener(){ 

    @Override 
    public void onClick(View view) { 
     managerOfSound(); 
    } 
}); 

Мой managerOfSound Mathod:

public void managerOfSound() { 
if (mp != null) { 
mp.reset(); 
mp.release(); 
} 
mp = MediaPlayer.create(this, R.raw.www); 
mp.reset(); 
mp.start(); 
} 

ответ

-2

попробовать это,

MediaPlayer mp = new MediaPlayer(); 

// Set data source - 
setDataSource("/sdcard/path_to_song"); 

// Play audio 
mp.start(); 

// Pause audio 
mp.pause(); 

// Reset mediaplayer 
mp.reset(); 

// Get song length duration - in milliseconds 
mp.getDuration(); 

// Get current duration - in milliseconds 
mp.getCurrentDuration(); 

// Move song to particular second - used for Forward or Backward 
mp.seekTo(positon); // position in milliseconds 

// Check if song is playing or not 
mp.isPlaying(); // returns true or false 

http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/

+0

я следовал, что и он все еще ведет себя так, как описано – johnnyshrewd

0

Это может быть потому, что экземпляр Soundpool из MaxStreams максимального числа (максимальное количество одновременных потоков) является слишком низкой

SoundPool mySound; 
mySound = new SoundPool(10, AudioManager.STREAM_MUSIC,0); 
+0

я просто пытаюсь поток 1 и я пробовал это и, к сожалению, это не сработало – johnnyshrewd