Не удается воспроизвести это видео ошибка

#java #android #video #coffeescript

#java #Android #Видео #coffeescript

Вопрос:

     public class MainActivity extends AppCompatActivity {
    Button clk;
    VideoView videov;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    clk=(Button) findViewById(R.id.video);
    videov=(VideoView)findViewById(R.id.videoView);
    }

    public void videoplay(View v){
   String videopath = "android.resource://" getPackageName() " R.raw.movie";
    Uri uri =Uri.parse(videopath);
    videov.setVideoURI(uri);
    videov.requestFocus();
    videov.start();

    }
    }
  

Не удается воспроизвести это видео ошибка …!! смотрите Снимок экрана
Что делать?
После нажатия кнопки воспроизведения он говорит, что не может воспроизвести это видео ..!!
Требуется решение этой проблемы.

Комментарии:

1. Да, это произошло, вам следует использовать стороннюю библиотеку

2. можете ли вы сказать мне, как, пожалуйста

3. конечно, пожалуйста, подождите..

Ответ №1:

Привет, позавчера у меня была такая же проблема, и я перепробовал почти все, но не добился никакого успеха. После этого я использовал эту библиотеку, и она работала нормально. Просто выполните несколько шагов:

Шаг 1.Добавьте его в свой gradle

 compile "fm.jiecao:jiecaovideoplayer:4.7.0"
  

Шаг 2.Добавьте его в качестве воспроизведения видео в XML-макете.

 <fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard
    android:id="@ id/videoPlayer"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
  

Шаг 3.Проверьте здесь, как использовать эту библиотеку в вашем классе,

 public class PlayVideoActivity extends BaseActivity {

@BindView(R.id.videoPlayer)
JCVideoPlayerStandard mVideoPlayer;

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

@Override
public int getLayout() {
    return R.layout.activity_play_video;
}

//create intent for this activity with all the necessary params
public static Intent createIntent(Context context, String videoUrl) {
    Intent intent = new Intent(context, PlayVideoActivity.class);
    intent.putExtra(ValueConstants.VIDEO_URL, videoUrl);
    return intent;
}

// get video path from intent and play the video here
private void restoreFromIntent(Intent intent) {
    String videoPath = intent.getExtras().getString(ValueConstants.VIDEO_URL);
    mVideoPlayer.setUp(videoPath
            , JCVideoPlayerStandard.SCREEN_LAYOUT_LIST, "");
}

@Override
public void onBackPressed() {
    if (JCVideoPlayer.backPress()) {
        return;
    }
    super.onBackPressed();
}

@Override
protected void onPause() {
    super.onPause();
    JCVideoPlayer.releaseAllVideos();
}
}
  

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

Обновленный ответ:

Приведенный выше пример, который я привел для воспроизведения онлайн-видео с URL-адреса, но у этого вопроса есть проблема, связанная с проблемой пути к видео.

Просто изменил этот путь:

 String videopath = "android.resource://" getPackageName() " R.raw.movie";
Uri uri =Uri.parse(videopath);
  

К этому,

 Uri uri = Uri.parse("android.resource://"   getPackageName()   "/"   R.raw.yourvideo);
  

Спасибо, надеюсь, это вам поможет.

Комментарии:

1. Я не знаю, как вас благодарить ..!! но теперь вы для меня как бог, Спасибо за помощь 🙂

2. Нет проблем, попробуйте этот способ и дайте мне знать, если у вас возникнут какие-либо проблемы

3. Как добавить шаг 1 в gradle?

4. В зависимости.. просто скопируйте и вставьте

5. Да, только то, что вам нужно