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

MediaPlayer выбор из Raw ?

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

Можно ли в MediaPlayer предоставить пользователю возможность выбрать треки из raw , как это сделать? или сделать возможность копировать музыку в отдельный каталог на SD ?
Также может ктото знает как сделать чтоб музыка не прекращалась при переходе между окнами и проигрывалось несколько треков одновременно?
0
QA
Эксперт
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 MediaPlayer(this,R.raw.sample);" Ошыбка :...

MediaPlayer
Всем привет. Работаю в CB6. В форме присутствует MediaPlayer , Панель (hide) вот __fastcall...

MediaPlayer
Подскажите, пожалуйста, как можно реализовать, чтобы при нажатии на кнопку Play, становилось...

Глюк в MediaPlayer
Хочу использовать Медия для озвучивания движения, но почему то функция Stop это просто пауза, эт во...

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
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2013, 13:42

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

TrackBar и MediaPlayer
Совсем недавно начал изучать Builder. Пишу медиаплеер. Возникла проблема. Есть TrackBar....

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


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

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

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