Почему мое видео не соответствует размеру текстуры, когда я меняю размер текстурыAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Почему мое видео не соответствует размеру текстуры, когда я меняю размер текстуры

Сообщение Anonymous »

Я пытаюсь анимировать видео, визуализированное с использованием представления текстуры, анимация работает нормально, но когда я масштабирую текстуру до другого размера, медиаплеер не масштабируется в соответствии с размером текстуры, видео всегда воспроизводится в полноэкранном режиме. в фоновом режиме, и я могу видеть только часть видео, когда масштабирую текстуру

мой код отлично работает на некоторых устройствах Android под управлением Android 4.0, но не работает на устройствах с более поздними версиями Android. вот мой код анимации, пожалуйста, скажите мне, в чем проблема..

Код: Выделить всё

public class MainActivity extends Activity implements TextureView.SurfaceTextureListener{
AnimationSet animset;
TextureView myTexture;
MediaPlayer mMediaPlayer;
Surface s;
int height;
static final String LogFileName = "Log";
int width;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

myTexture = new TextureView(this);
myTexture.setSurfaceTextureListener(this);
setContentView(myTexture);
}

@Override
public void onSurfaceTextureAvailable(SurfaceTexture arg0, int arg1,
int arg2) {

String mediaStorageDir = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS).getAbsolutePath();
s = new Surface(arg0);

try {
mMediaPlayer= new MediaPlayer();
mMediaPlayer.setSurface(s);
mMediaPlayer.setDataSource(mediaStorageDir+"/AirIndia.mp4");
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.prepareAsync();
mMediaPlayer.setLooping(true);
mMediaPlayer.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {

mMediaPlayer.start();

}
});

// to animate the texture

animset =new  AnimationSet(true);
animset.addAnimation(scaling);
animset.addAnimation(translate);
animset.setStartOffset(20000);

Animation fulscaling = new ScaleAnimation(1.0f, 1.3333f, 1.0f, 1.3333f);
TranslateAnimation fulltranslate = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, -0.3333f,        0, 0.0f, 0, 0.0f);
fulltranslate.setStartOffset(10000);

animset.setDuration(1000);
animset.setFillAfter(true);
animset.setFillEnabled(true);
fulscaling.setStartOffset(10000);

animset.addAnimation(fulscaling);
animset.addAnimation(fulltranslate);

myTexture.setAnimation(animset);

animset.setAnimationListener(new AnimationListener() {

@Override
public void onAnimationEnd(Animation arg0) {

myTexture.startAnimation(animset);
}

@Override
public void onAnimationRepeat(Animation arg0) {
// TODO Auto-generated method stub

}

@Override
public void onAnimationStart(Animation arg0) {
// TODO Auto-generated method stub

}

});

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

Подробнее здесь: https://stackoverflow.com/questions/271 ... of-the-tex
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»