0
{
    Intent i = getIntent();
    Bundle bundle = i.getExtras();
    if (bundle != null) {
        String url = i.getStringExtra("movieUrl");
        urlArray = url.trim().split(",");
        urlLength = urlArray.length;
        tempString = urlArray[loop].toString();
        mVideoView.setVideoPath(tempString);
        mVideoView.setMediaController(new MediaController(this));
        mVideoView.requestFocus();
        // Show progressbar
        progressDialog.show();
    }  

私の .ts ファイルのサイズは 12MB ですが、セグメントごとに 4MB しかかかりません。増やす方法は?

4

1 に答える 1

0

MediaPlayer オブジェクトにアクセスすることでバッファサイズを設定できます。

mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {
        //mp.setVideoQuality(MediaPlayer.VIDEOQUALITY_LOW);
        //mp.setPlaybackSpeed(1.0f);
        mp.setBufferSize(1024*1024*4);//4MB buffer size
    }
});

詳細については、ライブラリを確認できます。

/**
   * The buffer to fill before playback, default is 1024*1024 Byte 
   *
   * @param bufSize buffer size in Byte
   */
  public native void setBufferSize(long bufSize);

次のバッファ サイズ計算ツールを使用できます。バッファサイズに設定する必要がある秒数を示します。(ソース) そして、バッファサイズをバイト単位で計算できます。

// buffer padding in sec.
// should be at least twice as long as the keyframe interval and fps, e.g.:
// keyframe interval of 30 at 30fps --> min. 2 sec.
public static int BUFFER_PADDING = 3;

// videoLength in sec., videoBitrate and bandwidth in kBits/Sec
public static int calculate(int videoLength, int videoBitrate, int bandwidth) {
    int bufferTime;
    if (videoBitrate > bandwidth) {
        bufferTime = (int) Math.ceil(videoLength - videoLength / (videoBitrate / bandwidth));
    } else {
        bufferTime = 0;
    }
    bufferTime += BUFFER_PADDING;

    return bufferTime;
}
于 2016-04-29T10:32:53.057 に答える