Медиаплеер и задержка в игре - PullRequest
1 голос
/ 27 марта 2012

Я создаю небольшое приложение, которое является медиаплеером. У меня есть метод, где у меня есть песня. Я хочу отложить воспроизведение звука после нажатия кнопки. Как я могу сделать эту задержку. Я хочу нажать на кнопку и через 5 секунд музыка играет. Я использую: MediaPlayer.create, чтобы получить песню, и mediaplayer.start(), чтобы начать играть, но я не знаю, как отложить начало воспроизведения моей песни.

Ответы [ 3 ]

2 голосов
/ 27 марта 2012

Используйте обработчик в своей деятельности, чтобы отложить такие события, как запуск медиаплеера в вашем случае:

private RefreshHandler mRedrawHandler = new RefreshHandler(); 
 private RefreshHandler mRedrawHandler = new RefreshHandler(); 

     class RefreshHandler extends Handler {  
            @Override  
            public void handleMessage(Message msg) {  
             MyActivity.startMusic();  
            }  

            public void sleep(long delayMillis) {  
              this.removeMessages(0);  
              sendMessageDelayed(obtainMessage(0), delayMillis);  
            }  
          };  

В onClick кнопки вызовите mRedrawHandler.sleep(5000);, startMusic() - это метод, при котором вы запускаете воспроизведение мукса.

2 голосов
/ 27 марта 2012

В onClickListener кнопки запускается поток для задержки на 5 секунд. Затем вызовите mediaplayer.start () после задержки.

1 голос
/ 27 марта 2012

для видео с задержкой у нас есть метод SeekTo, попробуйте, он работает нормально.

                     final int playbackTime=5*1000;

                        System.out.println("Play Back Time====="+playbackTime);

                      getWindow().setFormat(PixelFormat.TRANSLUCENT); 


                          Uri video = Uri.parse(videourl);                 
                          videoView.setVideoURI(video);
                          videoView.requestFocus();
                          videoView.setOnPreparedListener(new OnPreparedListener() 
                          {

                              public void onPrepared(MediaPlayer mp) 
                              {                      

                                  videoView.start();
                                  videoView.seekTo(playbackTime);

                              }
                          });  
...