相关疑难解决方法(0)

如何在Android中的单个活动中播放多个(在我的情况下最多四个).m3u8视频流?

我很长时间以来一直面临这些问题,而且我对HLS的android支持感到非常失望,因为它的行为太随机了.

要求:

1)播放多个.m3u8视频流

2)应该在不同的设备和api级别上工作.

我所讨论的和各自的问题:

方法 - 1) 具有原生MediaPlayer的TextureView:

  • 播放的视频数量取决于设备,对于某些设备,它只播放一个视频(My Device - samsung galaxy grand quattro - api level 16),对于某些设备,它可以播放所有四个视频流.

  • 取决于api级别,一些.m3u8网址正在使用软糖而不是kitkat.

方法 - 2) ExoPlayer:

  • 方法-1的相同问题

方法 - 3) Vitamio:

  • 成功播放每个.m3u8网址

  • 没有多视频视频的支持

方法 - 4) grafika:

  • 它还不稳定(正如他们提到的那样).

我正在寻找的解决方案:

1)应该播放多个视频流,就像上述任何一种方法一样,我的设备可以播放单个视频,但似乎Milestone Mobile能够在我的设备中播放8个视频流(How?:O).

2)如果本机MediaPlayer无法播放某些.m3u8网址,那么如何调试确切的问题就像aac编解码器,解码器,段,.ts文件等有什么问题?

3)如果本机MediaPlayer无法播放流媒体,那么我该如何制作支持大多数流媒体网址的自定义MediaPlayer?

4)是否有可能与Vitamio一起播放多个视频?

5)符合我要求的任何其他HLS客户的参考?

就个人而言,我想选择Method-1,那么有什么我可以做的吗?

android http-live-streaming m3u8 vitamio exoplayer

8
推荐指数
0
解决办法
1460
查看次数

如何使用MediaPlayer在列表视图中播放多个视频?

我正在尝试使用视频作为元素来实现列表视图.我正在使用此项目在纹理视图上显示视频.它使用下面的MediaPlayer.在同时加载两个视频时失败(大部分时间).

我得到的错误是:

TextureVideoView error. File or network related operation errors.

MediaPlayer: error (1, -2147479551)
Run Code Online (Sandbox Code Playgroud)

当从磁盘加载文件时也会发生这种情况

在错误处理部分,我尝试重置URL.然后我大多得到

E/BufferQueueProducer: [unnamed-30578-12] disconnect(P): connected to another API (cur=0 req=3)
Run Code Online (Sandbox Code Playgroud)

错误.我不清楚的是,从网络设置一些任意视频会有效,但重试相同的网址会失败.

所以在OnErrorListener中:

textureView.setVideo(item.getUriMp4(),MediaFensterPlayerController.DEFAULT_VIDEO_START); 
Run Code Online (Sandbox Code Playgroud)

会失败但是:

textureView.setVideo("http://different.video" ... )
Run Code Online (Sandbox Code Playgroud)

会很有效.

这对于特定文件也不是问题,因为滚动不同的视频文件将失败.有时那些失败的人会在下次工作.

我也试过MediaCodecMediaExtractor组合而不是MediaPlayer方法,但我遇到,看起来像,设备特定的平台错误

任何提示?有什么建议?

谢谢

W上.

video mp4 android android-listview android-mediaplayer

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

VideoView变成黑屏

我正在开发多人视频应用程序,因此我创建了9个视图3*3.

当我初始化所有(3*3)视频,然后正常工作几秒钟,一段时间后视频进入黑屏,不显示单个视频,我不明白这个问题是面向设备或Android不支持超过1视频活动,任何人都知道如何解决这个问题,否则如果视频变成黑色,那么如何识别视频会变成黑屏,如果我们发现这个,那么我将刷新视图并再次启动视频,我不知道它是否正确方式与否.

请任何人知道如何解决这个问题,然后请分享信息!

我使用下面的代码在一个活动中显示多个视频

videoPlayer.setVideoPath("path");
videoPlayer.start();
videoPlayer.requestFocus();
videoPlayer.setKeepScreenOn(true);
Run Code Online (Sandbox Code Playgroud)

设置准备听众

videoPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
 @Override
 public void onPrepared(MediaPlayer mp) {
 }
Run Code Online (Sandbox Code Playgroud)

设置完成监听器

 videoPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
 @Override
 public void onCompletion(MediaPlayer mp) {
  //play next
  }
});
Run Code Online (Sandbox Code Playgroud)

处理错误监听器

videoPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
            @Override
            public boolean onError(MediaPlayer mediaPlayer, int i, int i1) {
                // play next
                return true;
            }
        });
Run Code Online (Sandbox Code Playgroud)

当视频播放之前,我设置一些属性mediaplyer对象

mediaPlayer.setDisplay(null);
mediaPlayer.reset();
mediaPlayer.setDisplay(videoPlayer.getHolder());
Run Code Online (Sandbox Code Playgroud)

我分享我的项目的基本代码,请告诉我,如果我缺少任何东西或Android不支持同一活动中的多个视频.

android media-player android-mediaplayer android-videoview

7
推荐指数
0
解决办法
823
查看次数

如何在一个活动中在不同的视频视图中播放多个视频

示例代码:

如何在一个活动中播放这两个视频

public class Two_videos extends Activity 
{
VideoView video1, video2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.two_video);

VideoView video1= (VideoView) findViewById(R.id.video1);
              video1.setVideoPath("/mnt/sdcard/Movies/com.bnb.giggle/IMG_20130415184609.mp4");
            video1.start();

VideoView video2= (VideoView) findViewById(R.id.video2);
        video2.setVideoPath("/mnt/sdcard/Movies/com.bnb.giggle/IMG_20130415184608.mp4");
        video2.start();
   }
}
Run Code Online (Sandbox Code Playgroud)

不能同时播放两个视频.

android android-videoview

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