我正在开发一个应用程序,用户可以在其中查看存储在SERVER上的所有视频信息和标题.我几乎完成了它,除了无论我如何编码它,我都无法从给定的URL获取视频持续时间.让我们从互联网上的某个地方获取这个演示视频: 点击这里获取视频路径 我希望应用程序获得视频持续时间,而无需打开视频本身.
我试图在android上使用的代码是这样的:
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource("https://12-lvl3-pdl.vimeocdn.com/01/1386/0/6932347/10573836.mp4?expires=1461047937&token=037972137fdfc4c2d9902");
String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
long timeInmillisec = Long.parseLong( time );
long duration = timeInmillisec / 1000;
long hours = duration / 3600;
long minutes = (duration - hours * 3600) / 60;
long seconds = duration - (hours * 3600 + minutes * 60);
Toast.makeText(context,Long.toString(timeInmillisec),Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
但我得到的结果是:第2行的java.lang.IllegalArgumentException是"retrievever.setDataSource()".任何人都可以帮我找到我做错了什么或android提供另一种方式来获取所需的信息?
我有一个视频文件的URL,我需要使用手机的原生视频播放器播放.
我想使用Intent.ACTION_VIEW并设置URI作为Intent数据,我能够在HTC英雄之外实现上述G1.在Hero的情况下,我必须在Intent中显式设置类Name以启动默认的Video Player:intent.setClassName("com.htc.album","com.htc.album.ViewVideo");
但是,我对这种方法并不满意,因为它可能在其他Android设备上破坏.请建议:
1.无论手机如何,通过Intent播放此视频网址的最佳方式是什么?
2.如何在Intent中有条件地设置ClassClass,特定于手机?
注意:为我们的应用程序编写独立的视频播放器不是我们目前可以承受的选项.
谢谢!
我想在视图的背景中播放视频.在视图中我想要一些其他视图,如按钮和textview,是否可以这样做?我尝试使用以下代码<
RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<VideoView
android:scrollbars="none"
android:clickable="false"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:fitsSystemWindows="true"
android:id="@+id/VideoView">
</VideoView>
<TextView
android:text="hi123"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
请建议我怎么做到这一点.
谢谢.
我正在使用 mediaplayer.xml 播放视频文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/MainView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#4d4d4d"
android:gravity="center"
android:keepScreenOn="true"
android:orientation="vertical" >
<SurfaceView
android:id="@+id/surfaceView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
以下 MediaPlayerActivity 类使用 SurfaceView 和 MediaPlayer 在纵向模式下播放视频时,视频似乎拉伸了一个。我想垂直居中播放视频,不应占据全屏,然后在横向模式下应以全屏模式播放。
public class MediaPlayerActivity extends Activity implements OnCompletionListener,
OnErrorListener, OnInfoListener, OnBufferingUpdateListener,
OnPreparedListener, OnSeekCompleteListener, SurfaceHolder.Callback,
MediaController.MediaPlayerControl {
private MediaController controller;
Display currentDisplay;
private SurfaceView surfaceView;
private SurfaceHolder surfaceHolder;
private MediaPlayer mediaPlayer;
int videoWidth = 0;
int videoHeight = 0;
boolean readyToPlay = false;
private String streamingVideoUrl;
private ProgressDialog dialog;
public final String …Run Code Online (Sandbox Code Playgroud) 我尝试了此博客( http://android-er.blogspot.kr/2013/05/get-current-frame-in-videoview-using.html )中的以下教程,该教程展示了如何捕获视频帧使用来自视频源的 MediaMetadataRetriever。但是,它仅在视频位于手机本地时才有效。
有没有办法在VideoView 通过 IP 流式传输视频时捕获视频帧?
我是 android studio 的初学者。
我正在开发一个简单的应用程序,我必须在其中从 URL 流式传输视频。只是一个简单的 Exoplayer 我尝试了下面的代码,但它不起作用。如果有人知道请帮忙。
XML
<com.google.android.exoplayer2.ui.PlayerView
android:id="@+id/exoplayer"
android:layout_width="match_parent"
android:layout_height="500dp"
android:foregroundGravity="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
Run Code Online (Sandbox Code Playgroud)
爪哇
PlayerView playerView;
SimpleExoPlayer simpleExoPlayer;
simpleExoPlayer = new SimpleExoPlayer.Builder(this).build();
playerView = findViewById(R.id.exoPlayerView);
playerView.setPlayer(simpleExoPlayer);
MediaItem mediaItem = MediaItem.fromUri(my video url);
simpleExoPlayer.addMediaItem(mediaItem);
simpleExoPlayer.prepare();
simpleExoPlayer.play();
Run Code Online (Sandbox Code Playgroud) android android-video-player android-videoview exoplayer exoplayer2.x
即使我从 better_player 文档复制了示例,我仍然收到以下错误。我确保我的 Android 目标是 31,kotlin 是 1.5+,并且启用了互联网权限。这是我的颤动版本:
\n\xe2\x9e\x9c drm_player git:(main) \xe2\x9c\x97 flutter --version
\nFlutter 2.8.1 \xe2\x80\xa2 通道稳定 \xe2\x80\xa2 https://github.com/flutter/flutter.git \n框架 \xe2\x80\xa2 修订版 77d935af4d(6 周前) \xe2\x80 \xa2 2021-12-16 08:37:33 -0800\n引擎 \xe2\x80\xa2 修订版 890a5fca2e\n工具 \xe2\x80\xa2 Dart 2.15.1
\n这是我正在努力解决的代码:
\nimport \'package:better_player/better_player.dart\';\nimport \'package:drm_player/constants.dart\';\nimport \'package:flutter/material.dart\';\n\nclass WidevinePlayer extends StatefulWidget {\n const WidevinePlayer({Key? key}) : super(key: key);\n\n @override\n _WidevinePlayerState createState() => _WidevinePlayerState();\n}\n\nclass _WidevinePlayerState extends State<WidevinePlayer> {\n late BetterPlayerController _widevineController;\n\n @override\n void initState() {\n setUpWidvineController();\n super.initState();\n }\n\n void setUpWidvineController() async {\n BetterPlayerConfiguration betterPlayerConfig …Run Code Online (Sandbox Code Playgroud) 获取从图库获取中选择的视频文件的路径NULL.如何获取视频文件的路径?在活动结果中获取URi也会给出null.将Uri转换为String也是如此Null.
Intent intent;
String selectedVideo1Path, selectedVideo2Path;
EditText e1,e2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.videos_activity);
Button button1 = (Button) findViewById(R.id.video1_btn);
Button button2 = (Button) findViewById(R.id.video2_btn);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectVideoFromGallery();
startActivityForResult(intent, 101);
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectVideoFromGallery();
startActivityForResult(intent, 102);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 101) {
if (data.getData() != null) { …Run Code Online (Sandbox Code Playgroud) android android-video-player android-videoview android-ffmpeg
我想在 android VideoView 中播放以下 YouTube 网址,但它不是流视频
https://www.youtube.com/watch?v=h-gEwftyPCg
以下是我的代码
VideoView videoView = (VideoView) getView().findViewById(R.id.dealVideo);
MediaController mc = new MediaController(getContext());
mc.setAnchorView(videoView);
mc.setMediaPlayer(videoView);
videoView.setVideoURI(Uri.parse("https://www.youtube.com/watch?v=h-gEwftyPCg"));
videoView.start();
Run Code Online (Sandbox Code Playgroud)
我也想支持非 YouTube 视频网址
youtube video android android-video-player android-videoview
我正在构建一个Android应用程序,用户可以在其中查看一些列出的视频。这些视频是某个频道中的类别。用户选择了某个频道后,我想将与该频道相关的所有视频缓存到我的缓存中,这样就可以在没有互联网的情况下播放视频。
任何人都可以在不玩游戏的情况下对视频缓存有更多的了解,请帮助我了解如何实现此任务。
现在,如果使用某些库播放的视频,我可以将其缓存。