1

私はAPI からいくつかのメディア コンテンツをlistView表示しています。API にはメディアの長さに関する情報が含まれていないため、これに対処するためのヘルパー クラスを作成すると考えました。

public static String getPodDuration(String url){
    utils = new Utilities();
    try{
    mep = getInstance();
    mep.reset();
    mep.setDataSource(url);
    mep.prepareAsync();
    mep.setOnPreparedListener(new OnPreparedListener() {

        @Override
        public void onPrepared(MediaPlayer mp) {
            // TODO Auto-generated method stub
            duration = mep.getDuration();
            Log.i("duration", String.valueOf(duration));
        }
    });
    } catch(IllegalArgumentException e){

    } catch(IllegalStateException e){

    } catch(IOException e){

    }
    return String.valueOf(utils.milliSecondsToTimer(duration));
}

は次のgetInstance()とおりです。

static MediaPlayer mep = null;
public static MediaPlayer getInstance(){
    if(mep == null){
        mep = new MediaPlayer();
    }
    return mep;
}

このようなメソッドを利用して、メイン クラスでメディア ファイルの URL を渡します。しかし、何らかの理由で、0:00 の値しか与えられません。utils.milliSecondsToTimer(duration)メソッドは正常に動作します。

次のエラーが表示されます。

error (1, -107)

誰かがこれを実装するのを助けることができますか? このメディアを再生する必要はありません。単に再生時間を取得する必要があります。

4

2 に答える 2