К сожалению, это видео не может быть воспроизведено!Ошибка / PlayerDriver - PullRequest
0 голосов
/ 14 декабря 2011

У меня проблемы с воспроизведением моего видео на моем Samsung Galaxy S .. оно воспроизводится нормально, если оно с SD-карты, но когда я загружаю на сервер, а затем отправляю URL-адрес, он дает мне «Извините, это видео не может быть воспроизведено»,Это видео в формате .mp4, и я преобразовал его в формат Android с помощью конвертера видео Sothink.

Это мой код VideoView:

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

setListAdapter(ArrayAdapter.createFromResource(getApplicationContext(),
       R.array.lecturehalls,R.layout.list_item));


final String[] links = getResources().getStringArray(R.array.vid_links);

getListView().setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {

        String content = links[position];
        Intent showContent = new Intent(getApplicationContext(),
               VideoOutput.class);
        showContent.setData(Uri.parse(content));
        startActivity(showContent);

          }




  });
}

Примечание. Пути URL хранятся в массиве в виде строк.xml Работает нормально, когда я использую эту ссылку: http://www.pocketjourney.com/downloads/pj/video/famous.3gp моя ссылка работает нормально, я проверил ее на своем компьютере, но когда на телефоне она не работает!

Вот что я получаю:

12-14 02:11:01.621: ERROR/PlayerDriver(1287): Command PLAYER_INIT completed with an error or info PVMFFailure

РЕДАКТИРОВАТЬ: класс VideoOutput

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.videoview);   


        MediaController mediaController = new MediaController(this);
        VideoView videoView = (VideoView) findViewById(R.id.video);


        Intent launchingIntent = getIntent();
        String content = launchingIntent.getData().toString();

    mediaController.setMediaPlayer(videoView);

    videoView.setVideoPath(content);

    videoView.setMediaController(mediaController);

    videoView.requestFocus();

    videoView.start();

    mediaController.show();


    }

1 Ответ

0 голосов
/ 14 декабря 2011

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

Если вы можете указать свой код на другой файл фильма, и он работает, то я бы предложил либо найти другой конвертер, либо настроить параметры, связанные с кодеком, в вашем, и повторить попытку. Или вы можете настроить его для загрузки видео с SD, а затем воспроизводить его оттуда.

EDIT:

Мне очень повезло с Wondershare Video Converter Platinum. Я думаю, что есть бесплатная версия, но я заплатил за нее, как только протестировал ее и нашел, что она работает для моих нужд.

Опубликуйте код, который находится внутри вашего класса VideoOutput. Это может помочь пролить свет на происходящее.

Также вы должны заменить оба экземпляра getApplicationContext() на YourActivityName.this. Использование getApplicationContext () таким способом склонно хранить копии вашего контекста в памяти дольше, чем это необходимо. Кроме того, ваша активность уже является контекстом, поэтому вам не нужно получать новую ссылку на контекст с большей областью действия.

...