1

3gp 形式の動画を再生するアプリケーションを作成しました。すべてがスマートフォンでうまく機能しています。タブレットにアプリをインストールしたところ、動画再生中におかしなことがありました。全体のレイアウトは縦モードですが、このようにムービーを 90 度回転させて横向き (縦モードの場合と同じサイズ) で再生します。

android:screenOrientation="portrait"でのアクティビティ用にマニフェスト ファイルを設定しましたVideoView。ランドスケープモードで表示したくありません。

自動回転画面が無効になっているスマートフォンでは、デフォルトの向きは縦です。タブレットのデフォルトの向きは横です。タブレットでのもう 1 つのことは、YouTube アプリを使用してポートレート モードでムービーを選択すると、自動的にビデオが回転し、サイズが変更され、ランドスケープ モードに固定されます。

ハードウェア設定やアプリケーションを変更できるかどうかはわかりません。

現在、タブレットで私のアプリケーションは、縦向きモードでビューを回転させてムービーを再生しています。

編集: マニフェスト ファイル:

   <activity  android:name=".Video" android:screenOrientation="portrait" />

コード:

   ByteArrayInputStream inputStream = new ByteArrayInputStream(cursor.getBlob(2)); //get from database
   stream = inputStream;
   if (stream == null)
      throw new RuntimeException("stream is null");

   try {   
      temp = File.createTempFile("movie", "3gp");
   } catch (IOException e1) {
      e1.printStackTrace();
   }

   temp.deleteOnExit();
   tempPath = temp.getAbsolutePath();

   try {
      out = new FileOutputStream(temp);
   } catch (FileNotFoundException e1) {
      e1.printStackTrace();
   }

   byte buf[] = new byte[128];

   do {
      try {
         numread = stream.read(buf);
      } catch (IOException e) {
         e.printStackTrace();
      }
      if (numread <= 0)
         break;
      try {
         out.write(buf, 0, numread);
      } catch (IOException e) {
         e.printStackTrace();
      }
   } while (true);

   try {
      stream.close();
   } catch (IOException ex) {
      Log.e("ERROR", "error: " + ex.getMessage(), ex);
   }

   final VideoView myVideoView = new VideoView(this);  
   myVideoView.setVideoPath(tempPath);
   myVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
      public void onPrepared(MediaPlayer arg0) {
         myVideoView.start();
      }
   });

   myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
      public void onCompletion(MediaPlayer mp) {
         mp.reset();
         myVideoView.setVideoPath(tempPath);
      }
   }); 
   tl.addView(myVideoView);  //add videoview to table layout

レイアウト.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rl"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:background="@drawable/tlomain">
    <TableLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/tlayout"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent">
    </TableLayout>
</RelativeLayout>

タブレット画面のすべての要素はポートレート モードに応じて問題なく、ビデオのみが 90 度回転します。

YouTube を使用してどのように見えるかを確認できます: http://i.stack.imgur.com/qwP5S.jpg

動画が回転します。私のスマートフォンでは、Youtube アプリの同じ動画が横表示で正常に設定されています。

アプリで変更する方法がわかりません。ハードウェアの設定ですか?タブレット デバイスで 3gp、mp4 形式を開きたい場合、90 度回転してランドスケープ モードに対応しますか?

4

0 に答える 0