http://developer.android.com/guide/topics/resources/runtime-changes.html。「構成変更の処理」という見出しの下にあるリンクを確認できます。
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
現在、これらの構成の1つが変更されても、MyActivityは再起動しません。代わりに、MyActivityはonConfigurationChanged()への呼び出しを受け取ります。このメソッドには、新しいデバイス構成を指定するConfigurationオブジェクトが渡されます。
android:configChanges="orientation|screenSize" (andorid 3.2 and above screen size also changes. add this)
ビデオが10分だとします。ビデオは5分まで再生され、向きが変わります。5分まで再生されたことがわかります。
ビデオの実際の進行状況をonSaveInstanceState()に保存し、保存したデータをバンドルからonRestoreInstanceState()に取得できます。その後、進行状況データを使用して、またはデータが保存されていない場合は最初から再生を開始できます。
向きが変わると、アクティビティは破棄されて再作成されます。データを保存して保持したい場合は、以下のようにして大量のデータを保存できます
@Override
public Object onRetainNonConfigurationInstance() {
final MyDataObject data = collectMyLoadedData();
return data;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final MyDataObject data = (MyDataObject) getLastNonConfigurationInstance();
if (data == null) {
data = loadMyData();
}
}
小さなデータセットの場合
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
// Save UI state changes to the savedInstanceState.
// This bundle will be passed to onCreate if the process is
// killed and restarted.
savedInstanceState.putString("NICK_NAME", Name);//save nick name
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// Restore UI state from the savedInstanceState.
// This bundle has also been passed to onCreate.
Name = savedInstanceState.getString("NICK_NAME");//restore nick name
}
向きを確認するには
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
AndroidのVideoView。この場合、ビデオもサーバーからストリーミングされます。受け入れられた回答を確認してください(一般的な回答)。私が提案したのとまったく同じです。