Android 视频分段流媒体

Android 视频分段流媒体,android,video,Android,Video,我想做的事情就像youtube,它先播放视频广告,然后播放第二个视频(真实视频)。这些视频来自网络,我需要在我的视频视图中播放它们。感谢懒惰忍者的代码,因为我实现了我想要的,但是有可能使用视频视图而不是SurfaceView吗?如果是,它的优点和缺点是什么?任何帮助都将不胜感激。谢谢 为此,API级别16中添加了()。 如果您的目标高于API 16,那么这应该可以完成任务。 如果您的目标值低于API 16,则以下方法可行。 在我的一个项目中,我只是使用MediaPlayer()完成的。 在这种情

我想做的事情就像youtube,它先播放视频广告,然后播放第二个视频(真实视频)。这些视频来自网络,我需要在我的视频视图中播放它们。感谢懒惰忍者的代码,因为我实现了我想要的,但是有可能使用视频视图而不是SurfaceView吗?如果是,它的优点和缺点是什么?任何帮助都将不胜感激。谢谢

为此,API级别16中添加了()。
如果您的目标高于API 16,那么这应该可以完成任务。
如果您的目标值低于API 16,则以下方法可行。
在我的一个项目中,我只是使用MediaPlayer()完成的。
在这种情况下,我在
onCompletion(){}中设置
setDataSource
()而不重新初始化MediaPlayer

public class Player extends Activity implements
        OnCompletionListener, MediaPlayer.OnPreparedListener, SurfaceHolder.Callback {
        private MediaPlayer player;
    private SurfaceView surface;
    private SurfaceHolder holder;

    public void onCreate(Bundle b) {
        super.onCreate(b);
        setContentView(R.layout.main);
        surface = (SurfaceView)findViewById(R.id.surface);
        holder = surface.getHolder();
        holder.addCallback(this);
        holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);  
        playVideo(firstUrl);  
    }

    public void onCompletion(MediaPlayer arg0) {
        playVideo(nextClipUrl);
    }
    public void onPrepared(MediaPlayer mediaplayer) {
        holder.setFixedSize(player.getVideoWidth(), player.getVideoHeight());
        player.start();
    }

    private void playVideo(String url) {
        try {

            if (player == null) {
                player = new MediaPlayer();
                player.setScreenOnWhilePlaying(true);
            }
            else {
                player.stop();
                player.reset();
            }
            player.setDataSource(url);
            player.setDisplay(holder);
            player.setOnPreparedListener(this);
            player.prepare();
            player.setOnCompletionListener(this);
        }
        catch (Throwable t) {
            Log.e("ERROR", "Exception Error", t);
        }
    }

谢谢,但我支持API级别8作为Minsdk版本。还有可能实现我的目标吗?是的!正如我所解释的,我在我的一个项目中使用了MediaPlayer()。添加OnCompletionListener(),并更改onCompletion()中的源代码。嗨@Lazy Ninja,我只想使用VideoView,因为它有自动播放/暂停按钮。使用VideoView比使用SurfaceView更糟糕吗?这就是为什么使用SurfaceView?谢谢。@kads使用VideoView很好。这更容易。将onCompletionListener添加到视频视图,并更改onCompletion()的源代码。Hi@Lazy Ninja。在安卓4.4和姜饼中播放视频时会口吃。但视频在果冻豆中播放得非常完美。有什么问题吗?我做的是直播。我这里有m3u8文件。希望你能帮助我。