Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
weeeeeez
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 3
1

MediaPlayer выбор из Raw ?

10.08.2013, 18:58. Просмотров 1330. Ответов 1
Метки нет (Все метки)

Можно ли в MediaPlayer предоставить пользователю возможность выбрать треки из raw , как это сделать? или сделать возможность копировать музыку в отдельный каталог на SD ?
Также может ктото знает как сделать чтоб музыка не прекращалась при переходе между окнами и проигрывалось несколько треков одновременно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2013, 18:58
Ответы с готовыми решениями:

MediaPlayer R.raw: Сделать функцию в которой передавалось бы название песни и она воспроизводилась
Такое дело, можно ли указать переменную в этом моменте? Просто я хочу...

"constructor MediaPlayer in class MediaPlayer cannot be applied to given types"
Проблема в строке "37--final MediaPlayer mp = new...

Static MediaPlayer
Добрый день! Пытался реализовать следующий алгоритм работы своего приложения:...

Регистрация MediaPlayer
Подскажите как зарегистрировать MediaPlayer, чтоб при открытии файла он...

Простой MediaPlayer
Нужно сделать простую програмку. В главном активити - Баттн, при нажатии на...

1
Wenceslaus
Android Developer
130 / 130 / 6
Регистрация: 05.07.2013
Сообщений: 205
12.08.2013, 13:42 2
Цитата Сообщение от weeeeeez Посмотреть сообщение
Можно ли в MediaPlayer предоставить пользователю возможность выбрать треки из raw , как это сделать?
Если вопрос в том, как проигрывать трек из raw, то:
Java
1
2
MediaPlayer mPlayer = MediaPlayer.create(MyActivity.this, R.raw.mysoundfile);
mPlayer.start();
Если в том, как показать список треков, то:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public void getRawFiles(){
    Field[] fields = R.raw.class.getFields();
    // перебираем массив файлов
    for(int count=0; count < fields.length; count++){
 
        int rid = fields[count].getInt(fields[count]);
 
        // получаем название файла
        String filename = fields[count].getName();
 
        // добавляем файл в список, который в дальнейшем будет виден пользователю
    }
}
Цитата Сообщение от weeeeeez Посмотреть сообщение
или сделать возможность копировать музыку в отдельный каталог на SD ?
Это тоже можно:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
InputStream in = getResources().openRawResource(R.raw.mysoundfile);
FileOutputStream out = new FileOutputStream(filePathOnSdCard); // filePathOnSdCard - путь, куда будет сохранён файл
byte[] buff = new byte[1024];
int read = 0;
 
try {
    while ((read = in.read(buff)) > 0) {
        out.write(buff, 0, read);
    }
} finally {
    in.close();
 
    out.close();
}
Цитата Сообщение от weeeeeez Посмотреть сообщение
Также может ктото знает как сделать чтоб музыка не прекращалась при переходе между окнами
Для этого используют Service (пример) или AsyncTask (пример)
Цитата Сообщение от weeeeeez Посмотреть сообщение
и проигрывалось несколько треков одновременно?
Одновременно или по очереди? Если одновременно - создайте несколько экземпляров MediaPlayer'а с разными треками и запустите их одновременно.
Если по очереди (последовательно), то создайте список треков и перебирая их поштучно воспроизводите, добавив OnCompletionListener (слушатель события завершения проигрывания трека) к MediaPlayer'у:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    public void onCompletion(MediaPlayer mp) {
        mp.reset();
        currentSong++; // устанавливаем следующий трек
        if (songArray.size()>=currentSong) return; // если проиграны все треки, завершаем проигрывание
 
        try { 
            AssetFileDescriptor afd = context.getResources().openRawResourceFd(songArray.get(++currentSong)); // из массива треков достаём следующий и проигрываем его
            mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength()); // воспроизведение из raw
            mp.prepare();
            mp.start();
            afd.close();
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
});
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2013, 13:42

Ошибка MediaPlayer'a
Здравствуйте форумчане.Создал кнопочку для проигрывания мелодии, но при...

MediaPlayer автореверс
Всем привет,вопрос такое ,можно как нибудь сделать,чтоб в медиаплеере...

SoundPool vs MediaPlayer
Какой класс лучше использовать для проигрывания музыки? Под музыкой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru