我想播放视频作为启动画面.我实现了播放视频,但它显示默认控件,如播放,暂停和搜索等.我想删除,以便后视频完成我需要调用新活动.
MediaController mc = new MediaController(this);
getWindow().setFormat(PixelFormat.TRANSLUCENT);
video.setMediaController(mc);
video.setVideoURI(uri);
video.setOnCompletionListener(this);
video.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1) {
Toast.makeText(getApplicationContext(), "ontouch",Toast.LENGTH_LONG).show();
return true;
}
}) ;
Run Code Online (Sandbox Code Playgroud)
和main.xml
预先感谢.
我在Android上开发了一个合适的流媒体视频播放器工作了几个小时,非常成功地创建了一个可以播放歌曲,预告片等小内容的播放器.但是播放器为电影和电视节目等大型内容显示了一些不寻常的行为,因为它需要大量的流媒体,播放器开始滞后于这些数据.任何人都可以帮我解决这个问题的解决方案.
提前致谢...
这是来源:
public class player extends Activity implements OnErrorListener,
OnPreparedListener {
/** Called when the activity is first created. */
private static final int UPDATE_FREQUENCY = 500;
private static final int STEP_VALUE = 4000;
private static final int DIALOG_KEY = 0;
private TextView currentTime, duration;
private VideoView videoView;
private SeekBar seekbar = null;
private View mediacontroller;
private ProgressDialog progressDialog = null;
private ImageButton playButton = null;
private ImageButton prevButton = null;
private ImageButton nextButton = null;
private boolean isMoveingSeekBar …Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码在Android手机中播放MP4:
VideoView videoView = (VideoView) findViewById(R.id.VideoView);
// Set video link (mp4 format )
File file2 = new File("/sdcard/Alone.mp4");
Uri video = Uri.fromFile(file2);
videoView.setVideoURI(video);
videoView.start();
Run Code Online (Sandbox Code Playgroud)
但是当我播放这个视频时,在开始播放该视频之前,我看到一个黑屏0.2或0.3秒.
我不希望出现黑屏.
那么我应该怎么做?我想要的是,当我播放视频时,应该只有视频的屏幕,在播放之前不应该有任何其他黑屏吗?
谢谢.
video android android-ndk android-video-player android-videoview
我正在研究Rtsp流媒体应用程序.Rtsp流工作正常,但现在我想在Android SD卡中保存这个.我做了很多谷歌搜索但找不到正确的解决方案.我遇到的方法很少但没有成功.使用FFMPEG和android NDK将流存储在设备上?我是Android和RTSP流媒体的新手,非常感谢帮助.
import android.app.Dialog;
import android.app.Fragment;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;
public class FrontFragment extends Fragment {
VideoView videoView;
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
final View rootView = inflater.inflate(
R.layout.fragment_front_cam, container, false);
videoView = (VideoView) rootView.findViewById(R.id.video_view);
MediaController mc = new MediaController(getActivity());
videoView.setMediaController(mc);
//
//Set the path of Video or URI
videoView.setVideoURI(Uri.parse("rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov"));
//Set the focus
videoView.requestFocus();
videoView.start();
Button btn = …Run Code Online (Sandbox Code Playgroud) 我在 RecyclerView 中使用 ExoPlayer。
我现在的工作方式是:
然而,当滚动浏览我的 RecyclerView 时,每个视频在播放前都会短暂(毫秒)闪烁黑色,如下面的视频所示:
我究竟做错了什么?我可以更改什么来防止视频播放前出现黑屏闪烁?
以下是我的 RecyclerView 适配器的相关部分:
public class PostAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private SimpleExoPlayer exoPlayer;
private HlsMediaSource.Factory hlsMediaSourceFactory;
public PostAdapter(Context context) {
this.context = context;
this.exoPlayer = new SimpleExoPlayer.Builder(context)
.build();
this.exoPlayer.setVideoTextureView(new TextureView(context));
this.hlsMediaSourceFactory = new HlsMediaSource.Factory(CustomMediaSourceFactory.buildMediaSourceFactory())
.setAllowChunklessPreparation(true); // TODO: Look into this
}
public class PostViewHolder extends RecyclerView.ViewHolder {
public ConstraintLayout videoContainer;
public ImageView videoThumbnail;
public …Run Code Online (Sandbox Code Playgroud) 有没有办法逐帧浏览视频文件?我尝试过使用VideoView,但我获得了一些小小的成功.我可以通过关键帧获取视频,但不是单个帧.我认为这将是默认设置,尤其是视频压缩的工作方式.有没有办法覆盖此默认行为或我可以更改的配置?
我已经阅读了网上提供的所有错误代码.
错误指定:
const PVMFStatus PVMFInfoLast = 100; "占位符结束"
但我无法处理这个错误,谢谢你的帮助.
在我的程序中我试图在全屏播放视频但没有播放视频的宽高比,
在Android默认播放器中,当你按下它时它左上角有一个按钮,它将视频转换为全视图,而不会保留宽高比的视频失真:
如下图所示:

我尝试使用以下代码获取全屏视频:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<VideoView android:id="@+id/myvideoview"
android:layout_width="fill_parent"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_height="fill_parent">
</VideoView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
上面的代码导致全屏视频但不保持Aspest Ratio
请任何机构建议我如何获得全屏视频没有中断宽高比.
我的视频存储在App资源文件夹的原始文件夹中.
请提供完整的工作代码.
我在这里和谷歌搜索了很多,但我找不到我的目标,
另一篇文章在stackoverflow中找到了相同的问题但在此链接中没有正确的答案:
我使用videoview在我的应用程序中显示我的视频如下:
public class Video extends Activity {
private VideoView videoview;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
videoview = (VideoView) findViewById(R.id.count_videoview);
videoview.setVideoURI(Uri.parse("android.resource://" + getPackageName()
+"/"+R.raw.first_video));
videoview.setMediaController(new MediaController(this));
videoview.requestFocus();
videoview.start();
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢 .
显然这与多个活动无关,这与视频文件的编码有关.
我将尝试简化问题:我有一个处于暂停状态的MediaPlayer对象,当我打电话时,mediaPlayer.getCurrentPosition()我得到一个准确的结果.当我调用mediaPlayer.setSurface()(使用不同的曲面)后跟mediaPlayer.play()此对象时,视频的播放位置与getCurrentPosition()返回的位置不同.我正在测试API> = ICE_CREAM_SANDWICH.
链接到视频文件:http://wpc.4ba9.edgecastcdn.net/804BA9/testenvmedia/m_8705_LuS3w7ctSZjB.mov.bs.mp4
我有两个活动,活动A和活动B.
Activity-A播放从远程流到TextureView使用a的视频MediaPlayer,它还包含一个按钮,其目的是:
调用mediaPlayer.pause();
打开活动-B.
Activity-B还包含一个TextureView应该使用相同MediaPlayer对象在其当前位置播放相同视频的视频.
Activity-A onCreate方法:
textureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() {
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int w, int h) {
try {
final MediaPlayer mediaPlayer = MyApplication.getMediaPlayer();
mediaPlayer.setDataSource(context, videoURI);
mediaPlayer.setSurface(new Surface(surfaceTexture));
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setLooping(shouldLoop);
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
mediaPlayer.prepareAsync();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override …Run Code Online (Sandbox Code Playgroud) 因为我希望能够通过播放视频的MediaPlayer,我想在播放视频的片段中使用SurfaceView而不是VideoView.
我查看了之前关于如何将MediaPlayer附加到SurfaceView的问题.这个问题的答案告诉我要创建两个函数:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_player);
getWindow().setFormat(PixelFormat.UNKNOWN);
mPreview = (SurfaceView)findViewById(R.id.surfaceView);
holder = mPreview.getHolder();
holder.setFixedSize(800, 480);
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mp = new MediaPlayer();
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
mp.setDisplay(holder);
play();
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我不能通过Fragment覆盖surfaceCreated,因为Fragment没有这个方法.我还可以将MediaPlayer附加到片段中的SurfaceView吗?
android android-video-player android-fragments android-mediaplayer