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

Обсуждение уроков
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

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

Сообщение damager82 » 29 апр 2013, 02:00

В этом уроке:
- используем MediaPlayer


Click here to read this article!
Последний раз редактировалось damager82 26 май 2017, 13:44, всего редактировалось 3 раза.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

SPAWN
Сообщения: 20
Зарегистрирован: 11 мар 2013, 21:59

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

Сообщение SPAWN » 29 апр 2013, 16:12

подскажите, как считать метаданные (артист, название трека и тд) с потока аудио?

ili13
Сообщения: 2
Зарегистрирован: 17 янв 2013, 10:46

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

Сообщение ili13 » 03 май 2013, 13:03

доброе время суток!

наконец-то тема которая меня в последнее время очень задела.
И так, мой проект:
Хочу напсать app(ку) при помощи которой можно смотреть стрим с IP камеры.

Хардварэ: Таб 10.1Н от Samsung и WiFi Камера и Asus Рутер

К моей Проблеме:
Таб подсоединяется к камере через RTSP протокол
Пример адресса: rtsp://<ip>:port/video.3gp или .mp4 или H264

Теперь к самой проблеме:
Видео воспроизводится только на 4-5 секунд потом всё замерзает и через где-то 7-10 секунд опять на 4-5 секунд показываeт.
Такое ощущение что таб постоянно заного подсоединяется или пишет бафер хотя я работаю без бафера.

и еще вопрос возможно ли в моей апп вызвать другую.
например другой плеэр скаченый из плей стора то есть не покидая моей апп?
если да до подскажите пожалуйста как?


Помогите люди добрые!

Всем зарание спасибо!!!

ktotokot
Сообщения: 2
Зарегистрирован: 10 июн 2013, 14:58

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

Сообщение ktotokot » 10 июн 2013, 15:09

Пишу приложение с использованием AsyncPlayer, которое воспроизводит аудиопоток из интернета.
Выявилась такая проблема: при запуске других приложений и недостатке памяти в системе AsyncPlayer уничтожается как неактивный процесс и звук обрывается. AsyncPlayer вызывается из MainActivity.
Кто знает, как это предотвратить?
Спасибо.

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

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

Сообщение klblk » 10 июн 2013, 15:45

ktotokot писал(а):Пишу приложение с использованием AsyncPlayer, которое воспроизводит аудиопоток из интернета.
Выявилась такая проблема: при запуске других приложений и недостатке памяти в системе AsyncPlayer уничтожается как неактивный процесс и звук обрывается. AsyncPlayer вызывается из MainActivity.
Кто знает, как это предотвратить?
Спасибо.
Думаю тебе нужен сервис в режиме Foreground:
http://startandroid.ru/ru/uroki/vse-uro ... rvisa.html

ktotokot
Сообщения: 2
Зарегистрирован: 10 июн 2013, 14:58

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

Сообщение ktotokot » 11 июн 2013, 00:27

Спасибо!
Завтра попробую, но похоже то что надо)

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

Re: Урок 126. Медиа. MediaPlayer

Сообщение =bor= » 08 июл 2013, 13:51

Хороший урок, спасибо автору!
Как раз сейчас видео плейер подробно разбираю.
Вот проверенный сниппет, позволяющий тапом по экрану приостанавливать и снова запускать воспроизведение:

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

   /**  Use screen touches to toggle the video between playing and paused. */
   @Override
   public boolean onTouchEvent (MotionEvent ev){	
      if(ev.getAction() == MotionEvent.ACTION_DOWN){
         if(videoPlayer.isPlaying()){
                  videoPlayer.pause();
         } else {
                  videoPlayer.start();
         }
         return true;		
      } else {
         return false;
      }
   }
Вопрос:
Как вывести прогресс-бар с возможностью управления точкой воспроизведения тапом по нему?

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

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

Сообщение =bor= » 08 июл 2013, 15:02

Вот здесь:

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

private void releaseMP() {
    if (mediaPlayer != null) {
      try {
        mediaPlayer.release();
        mediaPlayer = null;
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
и mediaPlayer.release(), и mediaPlayer = null, зачем null?
Edit. Перечитал свой вопрос и увидел ответ. :) Видимо, чтобы if срабатывал, точнее, не срабатывал, если при следующем вызове обнаружит, что mediaPlayer = null.

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

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

Сообщение =bor= » 08 июл 2013, 15:19

Почему при воспроизведении из raw нет mediaPlayer.prepare(), как в других случаях?
Последний раз редактировалось =bor= 13 июл 2013, 22:07, всего редактировалось 1 раз.

spheros
Сообщения: 11
Зарегистрирован: 29 мар 2013, 18:36

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

Сообщение spheros » 10 июл 2013, 13:50

=bor= писал(а):Почему при воспроизведении из raw нет mediaPlayer.prepare(), как в других случаях?
Согласно официальной документации при успешном создании медаплеера с помощью create(Context context, int resid) метод mediaPlayer.prepare() вызывается автоматически. Вызывать его повторно не нужно
http://developer.android.com/reference/ ... xt,%20int)

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

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

Сообщение damager82 » 12 июл 2013, 09:35

spheros писал(а):
=bor= писал(а):Почему при воспроизведении из raw нет mediaPlayer.prepare(), как в других случаях?
Согласно официальной документации при успешном создании медаплеера с помощью create(Context context, int resid) метод mediaPlayer.prepare() вызывается автоматически. Вызывать его повторно не нужно
http://developer.android.com/reference/ ... xt,%20int)
Верно. И в уроке это есть:
В случае с raw-файлом мы используем метод create. В нем уже будет выполнен метод prepare и нам остается только выполнить start.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

vasia
Сообщения: 3
Зарегистрирован: 22 июл 2013, 08:19

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

Сообщение vasia » 22 июл 2013, 08:24

можно сделать чтобы файлы из raw копировались в папку на Sd карту?, по другому получается что приложение слишком много памяти занимает

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

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

Сообщение =bor= » 22 июл 2013, 13:56

vasia писал(а):можно сделать чтобы файлы из raw копировались в папку на Sd карту?, по другому получается что приложение слишком много памяти занимает
Тут почитайте: Android : Copy RawFile to Sdcard (video mp4)

DarkWinston
Сообщения: 4
Зарегистрирован: 23 июл 2013, 17:40

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

Сообщение DarkWinston » 23 июл 2013, 17:47

Всем привет!
Я только начинаю писать под андроид и столкнулся с проблемкой: пишу видеоплеер, но запускается только музыка из файла, видео отсутствует

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

public class MainActivity extends Activity implements SurfaceHolder.
Callback
{
private MediaPlayer mediaPlayer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);




mediaPlayer = new MediaPlayer();
SurfaceView surface = (SurfaceView)findViewById(R.id.surface);
SurfaceHolder holder = surface.getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
holder.setFixedSize(400, 300);
}
@Override

	

public void surfaceCreated(SurfaceHolder holder) {
try {
mediaPlayer.setDisplay(holder);
mediaPlayer.setDataSource("http://daily3gp.com/vids/giant_rubberband_ball.3gp");
mediaPlayer.prepare();
} catch (IllegalArgumentException e) {
Log.d("MEDIA_PLAYER", e.getMessage());
} catch (IllegalStateException e) {
Log.d("MEDIA_PLAYER", e.getMessage());
} catch (IOException e) {
Log.d("MEDIA_PLAYER", e.getMessage());
}
}
public void surfaceDestroyed(SurfaceHolder holder) {
mediaPlayer.release();
}
public void surfaceChanged(SurfaceHolder holder,
int format, int width, int height) { }
@Override 
public boolean onTouchEvent (MotionEvent ev){     
   if(ev.getAction() == MotionEvent.ACTION_DOWN){ 
      if(mediaPlayer.isPlaying()){ 
               mediaPlayer.pause(); 
      } else { 
               mediaPlayer.start(); 
      } 
      return true;         
   } else { 
      return false; 
   } 
}
Подскажите, что я делаю не так? Ну или что сделать чтобы все встало на свои места?:)

DarkWinston
Сообщения: 4
Зарегистрирован: 23 июл 2013, 17:40

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

Сообщение DarkWinston » 23 июл 2013, 20:14

1.2. Возможность сохранять локально на девайсе 3gp файл из интернета
1.3. При блокировании экрана или при выходе из приложения, если пользователь не остановил воспроизведение, воспроизведение должно продолжиться.

Подскажите, люди добрые, как реализовать эти фичи?

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

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

Сообщение =bor= » 23 июл 2013, 22:07

DarkWinston писал(а):пишу видеоплеер, но запускается только музыка из файла, видео отсутствует
Вот тут MediaPlayer вот что про это пишут:
public void setDisplay (SurfaceHolder sh)
Sets the SurfaceHolder to use for displaying the video portion of the media. Either a surface holder or surface must be set if a display or video sink is needed. Not calling this method or setSurface(Surface) when playing back a video will result in only the audio track being played. A null surface holder or surface will result in only the audio track being played.
А в логах что?

DarkWinston
Сообщения: 4
Зарегистрирован: 23 июл 2013, 17:40

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

Сообщение DarkWinston » 23 июл 2013, 23:03

Воспроизведение уже таки побеждено)) просто сделал через VideoView, оказалось гораздо проще))
Остались нерешенными только вопросы:
1) как просматриваемое видео сохранять на телефон
2) как при сворачивании прилаги не стопить видео и звук

DarkWinston
Сообщения: 4
Зарегистрирован: 23 июл 2013, 17:40

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

Сообщение DarkWinston » 24 июл 2013, 19:52

Ребят, ау, нужна помощь)) Серьезно)

vasia
Сообщения: 3
Зарегистрирован: 22 июл 2013, 08:19

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

Сообщение vasia » 06 авг 2013, 09:07

Получается все кнопки в уроке преднастроены, можно ли сделать чтобы по нажатию кнопки пользователь выбирал звук или мелодию из списка в Raw ?

once2go
Сообщения: 8
Зарегистрирован: 01 май 2013, 20:29

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

Сообщение once2go » 12 авг 2013, 17:13

Помогите))Гибну)
Есть пару вопросов по ВИдео Вью
1. Как сделать его фулскрин(есть ли метод а то не нашел в либрах)...
2. Есть ли методы маркировки(например videoViwer.playFrom(1min40sec) - это я образно=) )
3. Как убрать кнопки управления по тачу(тоесть при таче у меня запланирован переход на другое активити со своим лейаутом а у меня по тачу показывается этот тулбар =( не красиво выходит )
4. как убрать самый нижний тулбар с кнопками бёк и хоум(я так понял это не в темах делаеться ибо столько их фулскрин перепробовал а толку ноль)

Заранее спасибо))

Ответить