10.11.2013 / 08:46 | |
UserSuperPupsik Пользователь Сейчас: Offline
Имя: UserSuperPupsik Регистрация: 27.09.2013
| Спасибо, вроде бы разобрался, вместо "audio/mpeg" использую "audio/x-wav" вместо "/1.mp3" использую "/1.wav" вместо 1.mp3 исползую 1.wav Так Всё Воспроизводится. Теперь другая проблема. Как воспроизвести wav файл не в папке проекта, а по адресу С:/Sounds/Music/1.wav , т.е. в памяти телефона или по адресу M:/Sounds/Music/1.wav , т.е. в карте памяти? |
10.11.2013 / 08:58 | |
UserSuperPupsik Пользователь Сейчас: Offline
Имя: UserSuperPupsik Регистрация: 27.09.2013
| Ребят, (нужен полный код) Как воспроизвести wav файл не в папке проекта, а по адресу С:/Sounds/Music/1.wav , т.е. в памяти телефона или по адресу M:/Sounds/Music/1.wav , т.е. в карте памяти?
|
10.11.2013 / 08:59 | |
samodelkin Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| import javax.microedition.io.Connector; import javax.microedition.io.file.FileConnection; import javax.microedition.media.Manager; import javax.microedition.media.Player; import javax.microedition.media.MediaException; import java.io.InputStream; import java.io.IOException;
public class NewClass {
public void playMp3File(){ try{ FileConnection fc=(FileConnection)Connector.open("file:///c:/1.wav"); //открытие файла из файловой системы телефона InputStream is=fc.openInputStream(); //открытие потока чтения из wav файла Player p=Manager.createPlayer(is,"audio/x-wav"); //создание плеера из потока чтения p.realize(); //реализовать плеер p.prefetch(); //предварительная подготовка p.setLoopCount(-1); //задать бесконечно число повторений p.start(); //запустить плеер }catch(Exception e){} }
}
Изменено samodelkin (10.11 / 09:01) (всего 2 раза) |
10.11.2013 / 15:50 | |
UserSuperPupsik Пользователь Сейчас: Offline
Имя: UserSuperPupsik Регистрация: 27.09.2013
| samodelkin, Спасибо, скомпилировал, переместил в телефон, установил, запустил, телефон задал 2 вопроса, относительно запись и чтение, я согласился.Но он ничего не воспроизводит!!! Файл лежит там где надо! Вот использованный код: package sound7; // воспроизвести wav|mid|mp3 из папки телефона
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import javax.microedition.media.MediaException;
import java.io.InputStream;
import java.io.IOException;
import javax.microedition.midlet.MIDlet;
public class Midlet extends MIDlet{
public void playMp3File(){
try{
FileConnection fc=(FileConnection)Connector.open("file:///c:/1.wav"); //открытие файла из файловой системы телефона
InputStream is=fc.openInputStream(); //открытие потока чтения из wav файла
Player p=Manager.createPlayer(is,"audio/x-wav"); //создание плеера из потока чтения
p.realize(); //реализовать плеер
p.prefetch(); //предварительная подготовка
p.setLoopCount(-1); //задать бесконечно число повторений
p.start(); //запустить плеер
}catch(Exception e){}
}
public void startApp() {
playMp3File();//!!!!!!!!!!!!!!!!!!!!!!!!!!
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
В чем проблема??? Изменено UserSuperPupsik (10.11 / 15:51) (всего 1 раз) |
10.11.2013 / 15:53 | |
SeTSeR Пользователь Сейчас: Offline
Имя: Сергей Откуда: Где-то возле Москвы Регистрация: 01.07.2012
| UserSuperPupsik, Возьми и пропиши отладочный код в блок catch, и посмотри, какое исключение вылетело
|
10.11.2013 / 16:18 | |
UserSuperPupsik Пользователь Сейчас: Offline
Имя: UserSuperPupsik Регистрация: 27.09.2013
| SeTSeR, Я не умею - играть в баскетболл (песня) , поэтому можно поподробнее (код) |
10.11.2013 / 16:49 | |
SeTSeR Пользователь Сейчас: Offline
Имя: Сергей Откуда: Где-то возле Москвы Регистрация: 01.07.2012
| UserSuperPupsik, например, так: Открыть спойлер Закрыть спойлер Alert a = new Alert(t.toString(), t.getMessage(), null, null);
a.setTimeout(2000);
Display.getDisplay(main).setCuurent(a);
|
11.11.2013 / 13:40 | |
UserSuperPupsik Пользователь Сейчас: Offline
Имя: UserSuperPupsik Регистрация: 27.09.2013
| samodelkin,Спасибо Вам, Нормальный код, делает то, что нужно: package sound5;
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import javax.microedition.media.MediaException;
import java.io.InputStream;
import java.io.IOException;
import javax.microedition.midlet.*;
public class Midlet extends MIDlet {
public void playMp3File(){
try{
InputStream is=getClass().getResourceAsStream("/1.mp3"); //открытие мп3 файла из jar-архива
Player p=Manager.createPlayer(is,"audio/mpeg"); //создание плеера из открытого файла
p.realize(); //реализовать плеер
p.prefetch(); //предварительная подготовка
p.setLoopCount(1); //задать число повторений (-1 бесконечно)
p.start(); //запустить плеер
}catch(Exception e){}
}
public void startApp() {
playMp3File();//!!!!!!!!!!!!!!!!!!!!!!!!!!
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
Как теперь освобождать память, т.е. при многократном использовании функции playMp3File(), помойму память переполняется, разве нет? Изменено UserSuperPupsik (11.11 / 13:41) (всего 1 раз) |
11.11.2013 / 14:13 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| UserSuperPupsik, Нет, но лучше обойтись без метода playMp3File, а в нужный момент просто вызывать p.start().
|
11.11.2013 / 18:48 | |
samodelkin Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| UserSuperPupsik, для остановки плеера используется метод stop() ,но прежде надо обьявить плеер в полях класса для доступа к нему из любой части класса, также есть метод close(), который полностью закрывает плеер.
|