2013-07-25 2 views
0

искание правильно не работает в моем коде,
я могу только искать именно в первой половине моих файлов,
я тестировал с mp3 в {30мин, 60мин , 90мин, 120мин} и не работают, но с mp4 все в порядке.Не можете искать mp3 более чем на 50% с MediaPlayer в AsyncTask

public class Player extends AsyncTask<Integer, Integer, Integer> implements 
    OnBufferingUpdateListener, OnCompletionListener, OnErrorListener { 

    private static MediaPlayer mp; 
    protected static Player PLAYER = null; 

    public Player(){ 
    mp = Defined.mp; 
    mp.setOnBufferingUpdateListener(this); 
    mp.setOnCompletionListener(this); 
    mp.setOnErrorListener(this); 


    } 

doInBackground:

@Override 
    protected Integer doInBackground(Integer... params) {  

    prepareFileToPlay(); 
    mp.start(); 

    startProgress(); 

    return null; 
} 

подготовки файла:

protected void prepareFileToPlay(){ 

    String url="http://192.168.1.2/test10.mp3"; //mp3 duration: 60min 
    mp.reset(); 


    try { 

     mp.setDataSource(url); 
     mp.prepare(); 
     publishProgress(PLAYING); 

    } catch (IllegalArgumentException e) { 
     e.printStackTrace(); 
    } catch (SecurityException e) { 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 


} 

функции воспроизведения:

public static void play(){ 
    if(PLAYER != null) PLAYER.cancel(true); 
    PLAYER = new Player(); 

    PLAYER.execute(""); 
} 

искать функции:

public static void seekTo(int time){   
    //mp.seekTo(time); 
    //mp.seekTo(mp.getDuration()-10000); //seekTo 59:50 
    //mp.seekTo(mp.getDuration()-60000); //seekTo 59:00 
    Log.v("player", "CurrentPosition: "+ mp.getCurrentPosition() + " Duration:"+ mp.getDuration()); //Duration: 60 min 

} 

ответ

0

Я проверял мое заявление в BlueStacks, но я понимаю, что этот вопрос посвящен BlueStacks и это не является общественной проблемой, и это не важно ...