Re: Урок 126. Медиа. MediaPlayer – аудио/видео плеер, основн
Добавлено: 23 ноя 2015, 14:29
Добрый день! Я только учусь.Возможно Вы мне сможеть что-то подсказать. У меня возникла такая проблем при создании приложения с потоковым радио: на определённой версиях андроида(Android 4.4) поток странно воспроизводится, после запуска стрима, он подгружается, воспроизводится - 1,2 секунды,потом пропадает секунд на 5 и вновь запускается, потом работает уже без збоев. На другив версиях опрерацинки всё отлично. Можете что-то посоветовать? Заранее спасибо.
public class MainActivity extends Activity implements OnPreparedListener, OnCompletionListener {
ProgressDialog pDialog;
final String DATA_STREAM = "http://";
MediaPlayer mediaPlayer;
AudioManager am;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
am = (AudioManager) getSystemService(AUDIO_SERVICE);
}
public void onClickStart(View view) {
releaseMP();
try {
switch (view.getId()) {
case R.id.btnStartStream:
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pDialog.setMessage("ЗАВАНТАЖЕННЯ...ЗАЧЕКАЙТЕ...");
pDialog.setInverseBackgroundForced(false);
pDialog.setCancelable(false);
pDialog.show();
ProgressThread thred = new ProgressThread();
thred.start();
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(DATA_STREAM);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setOnPreparedListener(this);
mediaPlayer.prepareAsync();
break;
}
} catch (IOException e) {
e.printStackTrace();
}
if (mediaPlayer == null)
return;
mediaPlayer.setOnCompletionListener(this);
}
private void releaseMP() {
if (mediaPlayer != null) {
try {
mediaPlayer.release();
mediaPlayer = null;
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void onClick(View view) {
if (mediaPlayer == null)
return;
switch (view.getId()) {
case R.id.btnStop:
mediaPlayer.stop();
break;
}
}
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
pDialog.hide();
}
private class ProgressThread extends Thread{
public void run(){
for(int count=0;count<=100;count++){
try {
Thread.sleep(100);
pDialog.setProgress(count);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
@Override
public void onCompletion(MediaPlayer mp) {
}
@Override
protected void onDestroy() {
super.onDestroy();
releaseMP();
}
}
public class MainActivity extends Activity implements OnPreparedListener, OnCompletionListener {
ProgressDialog pDialog;
final String DATA_STREAM = "http://";
MediaPlayer mediaPlayer;
AudioManager am;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
am = (AudioManager) getSystemService(AUDIO_SERVICE);
}
public void onClickStart(View view) {
releaseMP();
try {
switch (view.getId()) {
case R.id.btnStartStream:
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pDialog.setMessage("ЗАВАНТАЖЕННЯ...ЗАЧЕКАЙТЕ...");
pDialog.setInverseBackgroundForced(false);
pDialog.setCancelable(false);
pDialog.show();
ProgressThread thred = new ProgressThread();
thred.start();
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(DATA_STREAM);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setOnPreparedListener(this);
mediaPlayer.prepareAsync();
break;
}
} catch (IOException e) {
e.printStackTrace();
}
if (mediaPlayer == null)
return;
mediaPlayer.setOnCompletionListener(this);
}
private void releaseMP() {
if (mediaPlayer != null) {
try {
mediaPlayer.release();
mediaPlayer = null;
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void onClick(View view) {
if (mediaPlayer == null)
return;
switch (view.getId()) {
case R.id.btnStop:
mediaPlayer.stop();
break;
}
}
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
pDialog.hide();
}
private class ProgressThread extends Thread{
public void run(){
for(int count=0;count<=100;count++){
try {
Thread.sleep(100);
pDialog.setProgress(count);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
@Override
public void onCompletion(MediaPlayer mp) {
}
@Override
protected void onDestroy() {
super.onDestroy();
releaseMP();
}
}