标签: android-video-player

Android:视频作为启动画面

我想播放视频作为启动画面.我实现了播放视频,但它显示默认控件,如播放,暂停和搜索等.我想删除,以便后视频完成我需要调用新活动.

 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-video-player

7
推荐指数
2
解决办法
1万
查看次数

如何为大内容创建流式视频播放器?

我在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 android-video-player smooth-streaming-player

7
推荐指数
1
解决办法
3571
查看次数

如何在播放mp4视频之前删除黑屏?

我正在使用以下代码在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

7
推荐指数
1
解决办法
6013
查看次数

在android中保存rtsp流?

我正在研究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)

java android android-video-player

7
推荐指数
1
解决办法
732
查看次数

视频在播放前闪烁黑色 (ExoPlayer)

我在 RecyclerView 中使用 ExoPlayer。

我现在的工作方式是:

  • 仅使用一个 ExoPlayer 实例
  • 当 RecyclerView 项目进入视图时,它会准备播放器并将 PlayerView 附加到布局
  • 当 RecyclerView 项目消失时,它会调用 setPlayer(null) 并从布局中删除 PlayerView

然而,当滚动浏览我的 RecyclerView 时,每个视频在播放前都会短暂(毫秒)闪烁黑色,如下面的视频所示:

https://user-images.githubusercontent.com/30815862/128436800-d2153174-e768-4181-9fc0-19d9dec52efb.mp4

我究竟做错了什么?我可以更改什么来防止视频播放前出现黑屏闪烁?

以下是我的 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)

android android-video-player exoplayer exoplayer2.x

7
推荐指数
1
解决办法
1846
查看次数

帧搜索视频帧

有没有办法逐帧浏览视频文件?我尝试过使用VideoView,但我获得了一些小小的成功.我可以通过关键帧获取视频,但不是单个帧.我认为这将是默认设置,尤其是视频压缩的工作方式.有没有办法覆盖此默认行为或我可以更改的配置?

android android-video-player android-videoview

6
推荐指数
1
解决办法
5550
查看次数

Android Media Player错误(100,0)

我已经阅读了网上提供的所有错误代码.

错误指定:

const PVMFStatus PVMFInfoLast = 100; "占位符结束"

但我无法处理这个错误,谢谢你的帮助.

android android-video-player android-mediaplayer

6
推荐指数
2
解决办法
2万
查看次数

没有中断宽高比的全屏视频

在我的程序中我试图在全屏播放视频但没有播放视频的宽高比,

在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)

提前致谢 .

android fullscreen android-video-player android-videoview

6
推荐指数
1
解决办法
5436
查看次数

处于暂停状态时Android的MediaPlayer setSurface

编辑:

显然这与多个活动无关,这与视频文件的编码有关.

我将尝试简化问题:我有一个处于暂停状态的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,它还包含一个按钮,其目的是:

  1. 调用mediaPlayer.pause();

  2. 打开活动-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)

android android-video-player android-mediaplayer

6
推荐指数
1
解决办法
2830
查看次数

如何在片段中使用MediaPlayer到SurfaceView

因为我希望能够通过播放视频的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

6
推荐指数
1
解决办法
377
查看次数