Вниз  Java-программирование (1-ые посты)
- 10.11.2013 / 08:46
UserSuperPupsik
  Пользователь

UserSuperPupsik 
Сейчас: Offline
Спасибо, вроде бы разобрался, вместо "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
  Пользователь

UserSuperPupsik 
Сейчас: Offline
Ребят, (нужен полный код)
Как воспроизвести wav файл не в папке проекта, а по адресу С:/Sounds/Music/1.wav , т.е. в памяти телефона или по адресу M:/Sounds/Music/1.wav , т.е. в карте памяти?
- 10.11.2013 / 08:59
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
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
  Пользователь

UserSuperPupsik 
Сейчас: Offline
samodelkin, Спасибо, скомпилировал, переместил в телефон, установил, запустил, телефон задал 2 вопроса, относительно запись и чтение, я согласился.Но он ничего не воспроизводит!!! :-( Файл лежит там где надо! Вот использованный код:
  1. package sound7; // воспроизвести wav|mid|mp3 из папки телефона
  2.  
  3. import javax.microedition.io.Connector;
  4. import javax.microedition.io.file.FileConnection;
  5. import javax.microedition.media.Manager;
  6. import javax.microedition.media.Player;
  7. import javax.microedition.media.MediaException;
  8. import java.io.InputStream;
  9. import java.io.IOException;
  10. import javax.microedition.midlet.MIDlet;
  11.  
  12. public class Midlet extends MIDlet{
  13.  
  14.  
  15.  
  16. public void playMp3File(){
  17. try{
  18. FileConnection fc=(FileConnection)Connector.open("file:///c:/1.wav"); //открытие файла из файловой системы телефона
  19. InputStream is=fc.openInputStream(); //открытие потока чтения из wav файла
  20. Player p=Manager.createPlayer(is,"audio/x-wav"); //создание плеера из потока чтения
  21. p.realize(); //реализовать плеер
  22. p.prefetch(); //предварительная подготовка
  23. p.setLoopCount(-1); //задать бесконечно число повторений
  24. p.start(); //запустить плеер
  25. }catch(Exception e){}
  26. }
  27.  
  28.  
  29.  
  30.  
  31.     public void startApp() {
  32.  
  33.         playMp3File();//!!!!!!!!!!!!!!!!!!!!!!!!!!
  34.  
  35.     }
  36.  
  37.     public void pauseApp() {
  38.     }
  39.  
  40.     public void destroyApp(boolean unconditional) {
  41.     }
  42. }
В чем проблема??? :-(

Изменено UserSuperPupsik (10.11 / 15:51) (всего 1 раз)
- 10.11.2013 / 15:53
SeTSeR
  Пользователь

SeTSeR 
Сейчас: Offline
UserSuperPupsik, Возьми и пропиши отладочный код в блок catch, и посмотри, какое исключение вылетело
- 10.11.2013 / 16:18
UserSuperPupsik
  Пользователь

UserSuperPupsik 
Сейчас: Offline
SeTSeR, Я не умею - играть в баскетболл (песня) ;-) , поэтому можно поподробнее (код)
- 10.11.2013 / 16:49
SeTSeR
  Пользователь

SeTSeR 
Сейчас: Offline
UserSuperPupsik, например, так:
Открыть спойлер

- 11.11.2013 / 13:40
UserSuperPupsik
  Пользователь

UserSuperPupsik 
Сейчас: Offline
samodelkin,Спасибо Вам, Нормальный код, делает то, что нужно:
  1. package sound5;
  2.  
  3.  
  4.  
  5. import javax.microedition.media.Manager;
  6. import javax.microedition.media.Player;
  7. import javax.microedition.media.MediaException;
  8. import java.io.InputStream;
  9. import java.io.IOException;
  10. import javax.microedition.midlet.*;
  11. public class Midlet extends MIDlet {
  12.  public void playMp3File(){
  13.  try{
  14.  InputStream is=getClass().getResourceAsStream("/1.mp3"); //открытие мп3 файла из jar-архива
  15.  Player p=Manager.createPlayer(is,"audio/mpeg"); //создание плеера из открытого файла
  16.  p.realize(); //реализовать плеер
  17.  p.prefetch(); //предварительная подготовка
  18.  p.setLoopCount(1); //задать число повторений (-1 бесконечно)
  19.  p.start(); //запустить плеер
  20.  }catch(Exception e){}
  21.  }
  22.     public void startApp() {
  23.    playMp3File();//!!!!!!!!!!!!!!!!!!!!!!!!!!
  24.   }
  25.  public void pauseApp() {
  26.  }
  27. public void destroyApp(boolean unconditional) {
  28.  }
  29. }

Как теперь освобождать память, т.е. при многократном использовании функции playMp3File(), помойму память переполняется, разве нет?

Изменено UserSuperPupsik (11.11 / 13:41) (всего 1 раз)
- 11.11.2013 / 14:13
Naik
  Пользователь

Naik 
Сейчас: Offline
UserSuperPupsik, Нет, но лучше обойтись без метода playMp3File, а в нужный момент просто вызывать p.start().
- 11.11.2013 / 18:48
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
UserSuperPupsik, для остановки плеера используется метод stop() ,но прежде надо обьявить плеер в полях класса для доступа к нему из любой части класса, также есть метод close(), который полностью закрывает плеер.
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)