Урок 126. Медиа. MediaPlayer – аудио/видео плеер, основные возможности

Обсуждение уроков
waza
Сообщения: 1
Зарегистрирован: 23 ноя 2015, 13:49

Re: Урок 126. Медиа. MediaPlayer – аудио/видео плеер, основн

Сообщение waza » 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();
}
}

asffix
Сообщения: 2
Зарегистрирован: 06 фев 2016, 18:15

Re: Урок 126. Медиа. MediaPlayer – аудио/видео плеер, основн

Сообщение asffix » 21 фев 2016, 17:09

Подскажите плиз, почему у меня не работает метод setDataSource?
Вот код всего класса:
package com.example.flutteryplayer;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends Activity {
private MediaPlayer MP;
private String afe;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
afe=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)+"/music.mp3";
}
public void pause(View v) {
if(MP!=null) {
MP.release();
MP=null;
}
else {
MP.setDataSource(afe);
MP.prepare();
MP.start();
}
}
}
Когда делаю не setDataSource, а create, то всё работает, файл из папки raw спокойно воспроизводится.
Но вот тут выдаёт ошибку eclipse.

rus47
Сообщения: 4
Зарегистрирован: 09 июн 2016, 21:56

Re: Урок 126. Медиа. MediaPlayer – аудио/видео плеер, возмо

Сообщение rus47 » 09 июн 2016, 22:08

Подскажите как сделать кнопку с гарнитуры не активной, пока идёт воспроизведение?
Мне просто по нажатию на кнопку,нужно 1 трек воспроизвести.При втором нажатии второй трек.

Код: Выделить всё

   
	@Override
	public boolean onKeyUp(int keyCode, KeyEvent event)
	{
		super.onKeyUp(keyCode, event);
		
		{
			if (keyCode == KeyEvent.KEYCODE_HEADSETHOOK)
	        
			mp = MediaPlayer.create(getApplicationContext(), sounds[index]);
			mp.setLooping(false);
			mp.start();
			
	mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
			 public void onCompletion(MediaPlayer mp){
						if(index < sounds.length-1){
							index++; 
						} else {
							index = 0;
}
        }
              });return false;
	  }
	}
}

rus47
Сообщения: 4
Зарегистрирован: 09 июн 2016, 21:56

Re: Урок 126. Медиа. MediaPlayer – аудио/видео плеер, основн

Сообщение rus47 » 10 июн 2016, 23:34

Тут походу нет никого.

msn1983
Сообщения: 10
Зарегистрирован: 12 апр 2017, 21:31

Re: Урок 126. Медиа. MediaPlayer – аудио/видео плеер, основн

Сообщение msn1983 » 12 апр 2017, 21:36

Всем Привет! может мой вопрос покажется глупым. простите я только учусь работать в андроид студио и в программировании слабоват.
прочитал урок http://startandroid.ru/ru/uroki/vse-uro ... nosti.html
У меня почему то созданное приложение перестает транслировать звук со стрима при переворачивании телефона ( смена ориентации), при выходе из приложения ( обычно в других программах они же остаются в фоновом режиме) я то не нажимал СТОП стриму.
так же при блокировке экрана ( или у телефона просто потух экран) тут же музыка перестала звучать.
что то в коде по данному уроку не дописано или я криворукий?
Всем спасибо. жду совета.

DimonFilimon
Сообщения: 1
Зарегистрирован: 22 янв 2018, 11:56

Re: Урок 126. Медиа. MediaPlayer – аудио/видео плеер, основн

Сообщение DimonFilimon » 22 янв 2018, 11:57

msn1983 писал(а):Всем Привет! может мой вопрос покажется глупым. простите я только учусь работать в андроид студио и в программировании слабоват.
прочитал урок http://startandroid.ru/ru/uroki/vse-uro ... nosti.html
У меня почему то созданное приложение перестает транслировать звук со стрима при переворачивании телефона ( смена ориентации), при выходе из приложения ( обычно в других программах они же остаются в фоновом режиме) я то не нажимал СТОП стриму.
так же при блокировке экрана ( или у телефона просто потух экран) тут же музыка перестала звучать.
что то в коде по данному уроку не дописано или я криворукий?
Всем спасибо. жду совета.
@Override
protected void onDestroy() {
super.onDestroy();
// releaseMP();
}

msn1983
Сообщения: 10
Зарегистрирован: 12 апр 2017, 21:31

Re: Урок 126. Медиа. MediaPlayer – аудио/видео плеер, основн

Сообщение msn1983 » 27 мар 2019, 14:58

что мне делать?
у меня выдало в ошибках кучу всего!

ERROR: Failed to resolve: com.android.support.constraint:constraint-layout:1.0.0-alpha7
Install artifact and sync project
Show in Project Structure dialog
Affected Modules: app


ERROR: The minSdk version should not be declared in the android manifest file. You can move the version from the manifest to the defaultConfig in the build.gradle file.
Remove minSdkVersion and sync project
Affected Modules: app


WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dep ... tions.html
Affected Modules: app


WARNING: Configuration 'testCompile' is obsolete and has been replaced with 'testImplementation'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dep ... tions.html
Affected Modules: app


WARNING: Configuration 'androidTestCompile' is obsolete and has been replaced with 'androidTestImplementation'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dep ... tions.html
Affected Modules: app


WARNING: The specified Android SDK Build Tools version (27.0.3) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle Plugin 3.3.1.
Android SDK Build Tools 28.0.3 will be used.
To suppress this warning, remove "buildToolsVersion '27.0.3'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.
Remove Build Tools version and sync project
Affected Modules: app


Ответить