2017-01-12 5 views
0

Я разрабатываю приложение на основе кодового имени. Теперь я стараюсь воспроизводить звуки в фоновом режиме. К сожалению, я не нашел образец кода для этого.Как играть аудио в codenameone

Единственное, что я у меня следующий, который не работал:

InputStream uri = getClass().getResourceAsStream("startsound.mp3"); 
    try { 
     findMediaPlayer().setDataSource(uri,"audio/mpeg",null); 
    } catch (IOException ex) { 

    } 
    findMediaPlayer().run(); 

Кто-нибудь есть пример кода для этой проблемы?

ответ

1

ЗАКАНЧИВАТЬ developer guide для образцов кода этого, включая небольшой образец приложения для записи/воспроизведения аудио:

Form hi = new Form("Capture", BoxLayout.y()); 
hi.setToolbar(new Toolbar()); 
Style s = UIManager.getInstance().getComponentStyle("Title"); 
FontImage icon = FontImage.createMaterial(FontImage.MATERIAL_MIC, s); 

FileSystemStorage fs = FileSystemStorage.getInstance(); 
String recordingsDir = fs.getAppHomePath() + "recordings/"; 
fs.mkdir(recordingsDir); 
try { 
    for(String file : fs.listFiles(recordingsDir)) { 
     MultiButton mb = new MultiButton(file.substring(file.lastIndexOf("/") + 1)); 
     mb.addActionListener((e) -> { 
      try { 
       Media m = MediaManager.createMedia(recordingsDir + file, false); 
       m.play(); 
      } catch(IOException err) { 
       Log.e(err); 
      } 
     }); 
     hi.add(mb); 
    } 

    hi.getToolbar().addCommandToRightBar("", icon, (ev) -> { 
     try { 
      String file = Capture.captureAudio(); 
      if(file != null) { 
       SimpleDateFormat sd = new SimpleDateFormat("yyyy-MMM-dd-kk-mm"); 
       String fileName =sd.format(new Date()); 
       String filePath = recordingsDir + fileName; 
       Util.copy(fs.openInputStream(file), fs.openOutputStream(filePath)); 
       MultiButton mb = new MultiButton(fileName); 
       mb.addActionListener((e) -> { 
        try { 
         Media m = MediaManager.createMedia(filePath, false); 
         m.play(); 
        } catch(IOException err) { 
         Log.e(err); 
        } 
       }); 
       hi.add(mb); 
       hi.revalidate(); 
      } 
     } catch(IOException err) { 
      Log.e(err); 
     } 
    }); 
} catch(IOException err) { 
    Log.e(err); 
} 
hi.show(); 

enter image description here

1

Не уверен, может ли это иметь место в случае кодовых имен. Но и можно попробовать: -

MediaPlayer player = MediaPlayer.create(this, R.raw.music); 
player.setLooping(true); // Set looping 
player.setVolume(100,100); 

public int onStartCommand(Intent intent, int flags, int startId) { 
    player.start(); 
    return 1; 
} 

@Override 
public void onDestroy() { 
    player.stop(); 
    player.release(); 
} 

public void onStart(Intent intent, int startId) 
{ 
    // TODO 
} 

Или и может относиться к обсуждению здесь: Play Background Sound in android applications

Смежные вопросы