2

アクティビティ内に YouTube プレーヤーを埋め込みます。再生中であるか、すでに終了しているかを確認する必要があります。ここにコードがあります

package com.example.videotest;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.json.JSONException;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.annotation.SuppressLint;
import android.app.Activity; 
import android.content.Intent;
import android.graphics.Color;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebView;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.widget.Toast;

public class MainActivity extends Activity {

 WebView webview;


@SuppressLint({ "SetJavaScriptEnabled", "NewApi", "NewApi" })
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    String ytId = getYoutubeID("http://youtu.be/GDka8VKLMJY");
  final String iframe = "<html>" +
        "<body>" +
        "<object width="+"300"+"height="+"220"+">" +
        "<param name=\"movie\" value=\"https://www.youtube.com/v/"+ytId+"?autoplay=&enablejsapi=1&modestbranding=1&rel=0&showinfo=0&autohide=1&theme=light&version=3\">" +
        "</param>" +
        "<param name="+"allowFullScreen"+ "value="+"false"+">" +
        "</param>" +
        "<param name="+"allowScriptAccess"+"value="+"always"+">" +
        "</param>" +
        "<embed src=\"https://www.youtube.com/v/"+ytId+"?autoplay=1&enablejsapi=1&modestbranding=1&rel=0&showinfo=0&autohide=1&theme=light&version=3\" type=\"application/x-shockwave-flash\" allowfullscreen=\"true\" allowScriptAccess=\"always\" width=\"300\" height=\"220\">" +
        "</embed>" +
        "</object>" +
        "</body>" +
        "<html>";

    ImageView play = (ImageView)findViewById(R.id.ImageView1);

    play.setScaleType(ImageView.ScaleType.FIT_XY);
    play.getLayoutParams().height=200;
    play.getLayoutParams().width=-1;
    webview=(WebView) findViewById(R.id.webView1);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.getSettings().setPluginState(PluginState.ON);
    webview.setBackgroundColor(Color.parseColor("#00000000"));
    play.setOnClickListener(new OnClickListener(){

        public void onClick(View v) {
            webview.loadData(iframe, "text/html", "utf-8");
        }});


}

public String getYoutubeID (String URL){
    String youtubeId = "";
    String pattern = "https?:\\/\\/(?:[0-9A-Z-]+\\.)?(?:youtu\\.be\\/|youtube\\.com\\S*[^\\w\\-\\s])([\\w\\-]{11})(?=[^\\w\\-]|$)(?![?=&+%\\w]*(?:['\"][^<>]*>|<\\/a>))[?=&+%\\w]*";
    Pattern compiledPattern = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
    CharSequence cs = URL;
    Matcher matcher = compiledPattern.matcher(cs);
    if(matcher.find()){
        youtubeId=matcher.group(1);
        Toast.makeText(getBaseContext(), matcher.group(1), Toast.LENGTH_LONG).show();
    }
    return youtubeId;
}

}

ビデオが再生されているかどうかを追跡するにはどうすればよいですか? アドバイスありがとうございます!

4

1 に答える 1

0

YouTube Android Player API の使用を検討しましたか? http://apiblog.youtube.com/2012/12/no-webview-required-with-native-youtube.html . Java API を提供するため、WebView を含める必要はなく、このメカニズムを使用すると、WebView よりも再生の信頼性が高くなります。

于 2012-12-24T01:11:05.483 に答える