1

次のプレイリストを作成しました。

#EXTM3U
#EXTINF:3,File - 1
http://pilatus.d1.comp.nus.edu.sg/~a0095695/video_repo/1.mp4
#EXTINF:3,File - 2
http://pilatus.d1.comp.nus.edu.sg/~a0095695/video_repo/2.mp4
#EXTINF:-1,File - 3
http://pilatus.d1.comp.nus.edu.sg/~a0095695/video_repo/3.mp4
#EXT-X-ENDLIST

また、Androidデバイスで再生するためにこのコードを使用しています:

MediaController mc = new MediaController(this);
VideoView videoview = (VideoView)findViewById(R.id.myvideoview);        
mc.setMediaPlayer(videoview);
videoview.setMediaController(mc);
videoview.setVideoURI(Uri.parse("http://pilatus.d1.comp.nus.edu.sg/~a0095695/video_repo/playlist.m3u8"));
videoview.requestFocus();
videoview.start();

ダッシュストリーミングが欲しいので、その上に帯域幅に適応する別のm3u8ファイルのセットを作成します

問題は、「ファイルを再生できません」などのエラーが発生することです。

私は何が間違っているのですか?...

ありがとう

4

3 に答える 3

4

これはHLSストリーミングであり、Android4.0ではこの形式に問題はありません。トイザらスのコードが間違っているので、使ってみてください:

VideoView videoview = (VideoView)findViewById(R.id.myvideoview);        
videoview.setMediaController(new MediaController(this));
videoview.setVideoURI(Uri.parse("http://pilatus.d1.comp.nus.edu.sg/~a0095695/video_repo/playlist.m3u8"));
videoview.requestFocus();
videoview.setOnPreparedListener(new OnPreparedListener() {
        public void onPrepared(MediaPlayer mp) {
            mp.start();
        }
    });
于 2013-02-08T01:33:06.440 に答える
1

これは、Android で .M3U8 ストリーミングを再生する方法の例ですが、他のプログラマーが言うように、すべての Android デバイスで完全にサポートされているわけではありません

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <VideoView
        android:id="@+id/myVideoView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

Main.java

package com.grexample.ooyalalive;

import java.net.URL;
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;

public class Main extends Activity {

    private String urlStream;
    private VideoView myVideoView;
    private URL url;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_vv);//***************
            myVideoView = (VideoView)this.findViewById(R.id.myVideoView);
            MediaController mc = new MediaController(this);
            myVideoView.setMediaController(mc);         
            urlStream = "http://jorgesys.net/i/irina_delivery@117489/master.m3u8";
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    myVideoView.setVideoURI(Uri.parse(urlStream)); 
                }
            });
    }
}

多くの人が .M3U8 の再生に問題を抱えているのを見てきました。これは、ストリーミングに使用されるコーデックとデバイスとの互換性に依存します。たとえば、私の .m3u8 ファイルの一部は、画面が 1200 x800 以上のデバイスでのみサポートされます。

于 2015-02-25T16:36:55.693 に答える
1

Android の M3U8 プレイリストのサポートは制限されています。新しいデバイスのみがプレイリストをサポートしています。一部の人々は、デバイス 2.3.x で運が良かったと述べています。私の知る限り、この機能は Android 3.0 で利用可能になりました。

新機能のドキュメントを参照してください

サポートされているデバイスでテストしても問題が発生する場合は、httpliveプロトコルを使用してみてください

ただし、mp4 ファイルは再生されるはずです。

于 2012-10-06T16:43:37.243 に答える