【问题标题】:Create Video Playlist Manually (not from sd card)手动创建视频播放列表(不是从 sd 卡)
【发布时间】:2013-09-22 19:44:45
【问题描述】:

有人知道如何在安卓上手动创建视频播放列表吗? 怎么玩? 我想播放该播放列表中的视频,而不是来自 SD 卡/内置电话的视频。

以及如何从列表视图播放视频? 列表视图代码:

int[] indexVideo = {R.raw.saya,R.raw.anda,R.raw.aku,R.raw.dia,R.raw.kita,R.raw.lupa,R.raw.makan,R.raw.bahagia, R.raw.bisa, R.raw.belanja,R.raw.pergi,R.raw.pulang,R.raw.minum,R.raw.duduk};

如何在列表视图中播放所有这些视频?

谢谢

【问题讨论】:

    标签: android android-listview


    【解决方案1】:

    视频是否在 SD 卡上无关紧要。如果视频*在 SD 卡上,您将如何显示它们?如果您有该问题的答案,那么只需做同样的事情,除了您的 apk 常驻视频。

    参考此问题以了解如何显示视频的缩略图: how to display video thumbnails?

    然后播放用户选择的视频。

    【讨论】:

    • 谢谢你的回答,我不需要显示视频的缩略图
    • 您不需要“很多”视频播放器。您只需要一台视频播放器。如果您不需要缩略图,那就更容易了。只需在视频播放器中播放您的视频! :)
    • 对不起,我是android的初学者。请给我一个例子(代码)。
    • 我需要按顺序播放视频,而无需单击下一步按钮或其他按钮。谢谢
    • 使用 onComplete 监听器在您的视频结束时收到警报,然后播放下一个。
    【解决方案2】:

    你有没有看过 Android 开发者的Media Player 页面。你可以使用

    create(Context context, int resid)
    

    为您的资源创建 MediaPlayer 的方法。和

    start()
    

    启动您的第一个媒体的方法,之后您也可以使用

    setNextMediaPlayer(MediaPlayer next)
    

    通过为它创建新的 MediaPlayer 来播放你的下一个资源

    【讨论】:

    • 谢谢你的回答,但是如果我有很多视频,那么我必须制作很多新的 MediaPlayers 吗?有没有办法让它变得简单?
    • 我没怎么用过MediaPlayer,所以不太清楚。我之前只是将它用于一个文件。但是有一个 selectTrack() 方法,所以我认为可能有一种方法可以只使用 MediaPlayer
    • 您知道如何将所有曲目 URI 放入一个列表并作为单个曲目播放吗?
    【解决方案3】:

    您不应该像您在之前的评论中所说的那样“制作很多新的 MediaPlayer”。你应该有两个,一个正在播放,另一个是它可以提前准备。

    我提供以下内容,但不保证它会起作用(因为我还没有测试过),但它应该让您知道如何继续:

    private int[] mPlaylist = new int[] { /* Your raw resource IDs */ };
    
    private MediaPlayer createMediaPlayer(final Context context, final int index) {
        if (context == null || index < 0 || index >= mPlaylist.length) return null;
        MediaPlayer newPlayer = MediaPlayer.create(context, mPlaylist[index]);
        newPlayer.setOnInfoListener(new MediaPlayer.OnInfoListener() {
            @Override
            public void onInfo(MediaPlayer mp, int what, int extra) {
                if (what == MEDIA_INFO_VIDEO_RENDERING_START)
                    mp.setNextMediaPlayer(createMediaPlayer(context, index + 1));
            }
        });
        newPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                mp.release();
            }
        });
        return newPlayer;
    }
    

    然后在适当的地方(例如onStart),您需要致电createMediaPlayer(yourContext, 0);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      相关资源
      最近更新 更多