Страница 2 из 5

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

Добавлено: 27 авг 2013, 13:18
Vitorrio
Пишу приложение с помощью которого можно будет два файла параллельно слушать, на основе стереозвука, т.е. в одни уши первую аудиозапись, во вторые уши вторую аудиозапись.

На данный момент реализация такова, создаю два MediaPlayer, в один отправляю первый файл, в другой второй файл, и просто изменяю баланс.

А как это сделать через один MediaPlayer ?
И как залезть внутрь библиотекИ?

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

Добавлено: 27 авг 2013, 15:55
nunuchek
Привет, помогите плиз.

Код:

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

	mPlayer = new MediaPlayer();
	mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
           try {
			mPlayer.setDataSource(link);
		} catch (IllegalArgumentException e) {
			Log.d(tag, "You might not set the URI correctly!");
		} catch (SecurityException e) {
			Log.d(tag, "You might not set the URI correctly!");
		} catch (IllegalStateException e) {
			Log.d(tag, "You might not set the URI correctly!");
		} catch (IOException e) {
			e.printStackTrace();
		}

mPlayer.setOnBufferingUpdateListener(new OnBufferingUpdateListener() {
			
			public void onBufferingUpdate(MediaPlayer mp, int percent) {
				Log.d(tag," percent ="+percent);
				if (percent != 100){
					textView1.setText("Загрузка "+percent+"%");
				}else{
					textView1.setText("Готово");
				}
					
				}
			}
		});

int i = 0;
btnPlayandPause.setOnClickListener(new OnClickListener() {
				boolean prepare = true;
				public void onClick(View v) {
					if (prepare){
					try {
						mPlayer.prepare();
						prepare = false;
						
					} catch (IllegalStateException e) {
						Log.d(tag, "You might not set the URI correctly!");
					} catch (IOException e) {
						Log.d(tag, "You might not set the URI correctly!");
					}
					}
					
					
					if (mPlayer != null && i == 0) {

						mPlayer.start();
						i = 1;
						btnPlayandPause.setText("Pause");
						seek.setMax(mPlayer.getDuration());
						timeline = mPlayer.getDuration();
						seek.setProgress(mPlayer.getCurrentPosition());
						try {
							currentThread.start();
						} catch (Exception er) {

						}
					} else {
						if (mPlayer != null && mPlayer.isPlaying()) {
							
							mPlayer.pause();
							
							
						}
						btnPlayandPause.setText("Play");
						i = 0;

					}

				}
			});
Т.е после нажатия кнопки Play
1. подготавливается запись и сразуже воспроизводится запись
2. во время буфиризации отображаются проценты загрузки

Как при завершении буфиризации скачать файл из буфера и сохранить его на SD (нажав на кнопку "Загрузить")?

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

Добавлено: 28 авг 2013, 11:35
nunuchek
Как остановить процесс prepare() т.к. постоянно кидает в лог:

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

08-28 11:30:09.519: V/MediaPlayer(19539): message received msg=3, ext1=100, ext2=0
08-28 11:30:09.519: V/MediaPlayer(19539): buffering 100
08-28 11:30:09.519: V/MediaPlayer(19539): callback application
08-28 11:30:09.519: V/MediaPlayer(19539): back from callback

08-28 11:30:10.519: V/MediaPlayer(19539): message received msg=3, ext1=100, ext2=0
08-28 11:30:10.519: V/MediaPlayer(19539): buffering 100
08-28 11:30:10.519: V/MediaPlayer(19539): callback application
08-28 11:30:10.519: V/MediaPlayer(19539): back from callback

08-28 11:30:11.519: V/MediaPlayer(19539): message received msg=3, ext1=100, ext2=0
08-28 11:30:11.519: V/MediaPlayer(19539): buffering 100
08-28 11:30:11.519: V/MediaPlayer(19539): callback application
08-28 11:30:11.519: V/MediaPlayer(19539): back from callback
Или это нужно останавливать onBufferingUpdate() то как его остановить? Или вообще забить на этом?))

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

Добавлено: 12 сен 2013, 19:32
Kruler
пол вечера пытался понять, из-за чего вылетает ошибка
MediaPlayer("цифры"): Unable to to create media player
но увы так и не понял, гугл ничего не говорит
проигрывание медиа работает только из RAW, в манифесте права написаны.
вылетает на китайском планшете с андроид 4.2, на htc vision с aosp 4.2.2 все работает хорошо.

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

Добавлено: 02 окт 2013, 01:00
SPAWN
Подскажите, как расширить список воспроизводимых форматов как аудио так и видео?

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

Добавлено: 02 окт 2013, 05:46
klblk
SPAWN писал(а):Подскажите, как расширить список воспроизводимых форматов как аудио так и видео?
вероятно подключать сторонние библиотеки, вероятно нативные (можно посмотреть в сторону библиотеки vlc например), вероятно есть методы и попроще...=)

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

Добавлено: 14 окт 2013, 13:18
SPAWN
klblk писал(а):
SPAWN писал(а):Подскажите, как расширить список воспроизводимых форматов как аудио так и видео?
вероятно подключать сторонние библиотеки, вероятно нативные (можно посмотреть в сторону библиотеки vlc например), вероятно есть методы и попроще...=)
Может быть у Вас есть пример их использования или ссылка на ресурс?

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

Добавлено: 14 окт 2013, 13:56
klblk
SPAWN писал(а):Может быть у Вас есть пример их использования или ссылка на ресурс?
Сам я их никогда не использовал, но есть приложения которые используют библиотеку vlc.
Тут есть инструкция по сборке на Android: https://wiki.videolan.org/AndroidCompile/
Но желательно иметь опыт работы с NDK.

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

Добавлено: 14 окт 2013, 16:28
goldirus
подскажите пожалуйста как считать состояние кнопки гарнитуры? в инете этого не нашол. хочу с помощью нее упровлять проигрователем

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

Добавлено: 17 окт 2013, 14:18
mercuriy94
goldirus писал(а):подскажите пожалуйста как считать состояние кнопки гарнитуры? в инете этого не нашол. хочу с помощью нее упровлять проигрователем
Добавляем этот сниппет в нашу activity и наше приложение для android сможет обрабатывать нажатия hardware-кнопок так как мы того пожелаем. В данном примере используется обработчик для нажатия кнопки “вызова” (KeyEvent.KEYCODE_HEADSETHOOK) на handsfree гарнитуре.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
super.onKeyUp(keyCode, event);
if (keyCode == KeyEvent.KEYCODE_HEADSETHOOK)
{
// ADD HERE YOUR CODE TO PROCESS PARTICULAR KEY-PRESS EVENT
return true; //because you handle this event
}
return false; // allow to system handle it
}
Если вы не знаете кода кнопки для которой хотите написать обработчик – переопределите функцию onKeyDown таким образом чтобы она выводила код нажатой кнопки и всегда возвращала false:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
super.onKeyUp(keyCode, event);
Log.i("KEY CODE ","PRESSED KEY - "+keyCode);
return false; // allow to system handle it
}

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

Добавлено: 17 окт 2013, 14:20
mercuriy94
Всем привет, имеется такой вопрос.
Как сменить микрофон телефона на гарнитурный, то есть я вызываю активити расознавание речи и идёт приём звука не с гарнитуры а с телефона. Как это можно исправить?

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

Добавлено: 18 окт 2013, 20:29
nunuchek
Подскажите как изменить в ID3v2 тег LINK INFORMATION
Я нашел то как изменять другие теги http://jid3.blinkenlights.org/samples.html, но вот как изменить этот не знаю

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

Добавлено: 25 окт 2013, 11:31
SPAWN
SPAWN писал(а):Подскажите, как расширить список воспроизводимых форматов как аудио так и видео?
Форумчане помогите с решением. Очень надо. Нужно на Андроид 2.2 воспроизвести flac. Нашел библиотеку jflac, но нету мануала по ней=(

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

Добавлено: 27 окт 2013, 06:02
Arssir
У меня в приложении играет музыка, я сделал так что при выходе и сворачивании, музыка приостанавливается (методы onPause(), onStop(), onResume()). Но не могу понять как остановить музыку при блокировки экрана. Какой метод за это должен отвечать?

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

Добавлено: 10 ноя 2013, 03:02
IgNa
Из верхнего ряда кнопок только raw издает звук ?

А что надо добавить в код что бы проиграть файл с sd карты
потому что вот этот код ничего не даЁт
case R.id.btnStartSD:
Log.d(LOG_TAG, "start SD");
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(DATA_SD);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.prepare();
mediaPlayer.start();
break;

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

Добавлено: 28 ноя 2013, 23:03
Ave23
IgNa писал(а):Из верхнего ряда кнопок только raw издает звук ?

А что надо добавить в код что бы проиграть файл с sd карты
потому что вот этот код ничего не даЁт
case R.id.btnStartSD:
Log.d(LOG_TAG, "start SD");
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(DATA_SD);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.prepare();
mediaPlayer.start();
break;
ну чтобы какой-то один файл проиграть надо изменить в mediaPlayer.setDataSource(DATA_SD); в скобках вместо DATA_SD написать "mnt/sdcard/название_композиции.mp3"
а вот как например проиграть папку с музыкой подскажите кто знает??

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

Добавлено: 03 дек 2013, 04:06
klblk
Ave23 писал(а):а вот как например проиграть папку с музыкой подскажите кто знает??
1) Получаем список файлов из папки:
[syntax=java]File dir = new File(DATA_SD);
File[] files = dir.listFiles();[/syntax]
2) Прогоняем их через фильтр какой-нить, чтобы оставить только медиа файлы
3) В mediaPlayer закидываем первый файл, затем в onCompletion ловим завершение проигрывания и закидываем следующий и т.д.

думаю как-то так.

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

Добавлено: 04 дек 2013, 22:32
Ave23
klblk писал(а):
Ave23 писал(а):а вот как например проиграть папку с музыкой подскажите кто знает??
1) Получаем список файлов из папки:
[syntax=java]File dir = new File(DATA_SD);
File[] files = dir.listFiles();[/syntax]
2) Прогоняем их через фильтр какой-нить, чтобы оставить только медиа файлы
3) В mediaPlayer закидываем первый файл, затем в onCompletion ловим завершение проигрывания и закидываем следующий и т.д.

думаю как-то так.
честно говоря, не очень понял, а скажите рациональна ли идея считать названия всех композиций из папки на sdcard в массив string и потом в код mediaPlayer.setDataSource("mnt/sdcard/music.mp3"); подставлять элемент массива. Хотя я не знаю как считать все названия из папки))

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

Добавлено: 06 дек 2013, 05:13
klblk
Ave23 писал(а):честно говоря, не очень понял, а скажите рациональна ли идея считать названия всех композиций из папки на sdcard в массив string и потом в код mediaPlayer.setDataSource("mnt/sdcard/music.mp3"); подставлять элемент массива. Хотя я не знаю как считать все названия из папки))
ну так я это и имел ввиду только не массив строк, а массив File (код получения в сообщении выше, DATA_SD - путь к нужной папке), из которого можно получить и путь к файлу (mFile.getPath()). А вот насколько это рационально не знаю, но я бы сделал так, т.к. другой способ на ум не приходит.

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

Добавлено: 09 дек 2013, 17:49
SPAWN
Форумчане, подскажите как сохранить воспроизводимое видео с сайта (не поток). Я понимаю, что оно кешируется и определенное время находиться на устройстве, но как его сохранить для повторного воспроизведения?