Проблема при воспроизведении видео в TextureView

Я пытался воспроизвести видео на TextureView. Я прогуглил это и прошел и этот вопрос на stackru для воспроизведения видео в TextureView. Я использовал локальный файл вместо удаленного видеопотока в setDataSource(). Я не получаю никакой ошибки в logcat, и это показывает, что видео начало воспроизводиться. Но я вижу только черный экран на дисплее. Я попробовал пример кода этого проекта GitHub. Даже в этом случае также появляется только черный экран. Я могу воспроизводить одно и то же видео через VideoView, поэтому в видеофайле нет проблем.

Вот код, который я пробовал до сих пор...

MainActivity.java

private TextureView mTextureView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    try {
        this.mTextureView=(TextureView) findViewById(R.id.textureView);
        this.mTextureView.setSurfaceTextureListener(this);
    } catch (Exception e1) {
        e1.printStackTrace();
    }
 }

@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width,
        int height) {
    try {
        mMediaPlayer = new MediaPlayer();
        mMediaPlayer.setDataSource(Environment
                .getExternalStorageDirectory()
                + File.separator
                + "video1.mp4");
        mMediaPlayer.setSurface(new Surface(surface));
        mMediaPlayer.prepareAsync();
        mMediaPlayer.setOnBufferingUpdateListener(this);
        mMediaPlayer.setOnCompletionListener(this);
        mMediaPlayer.setOnPreparedListener(this);
        mMediaPlayer.setOnVideoSizeChangedListener(this);
        mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

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

}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
    <TextureView android:id="@+id/textureView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>
</LinearLayout>

Пожалуйста, помогите мне в этом вопросе... Заранее спасибо

РЕДАКТИРОВАТЬ
Что-то не хватает в моем коде или я делаю что-то не так...

1 ответ

Если вы попытаетесь воспроизвести видео на симуляторе Android, это не сработает, поскольку на момент получения ответа виртуальные устройства Android не способны воспроизводить видео. Вы должны проверить это на реальном устройстве.

Другие вопросы по тегам