Ok, so endlich habe ich endlich herausgefunden, wie diese richtig zu machen!
diese Informationen zu erhalten, eine HTTP GET
Anfrage mit Ihrem API-Schlüssel machen und die Video-ID an dem API v3 YouTube Daten:
https://www.googleapis.com/youtube/v3/videos?id=<VIDEO ID>&key=<YOUR API KEY>&part=status
[EDIT] Wie um zu überprüfen, ob ein Video embeddable ist mit der YouTube Data API v3 von android mit HTTP-Anforderungen
Schritt 1:
das Wichtigste zuerst, müssen Sie Ihr Projekt konfigurieren um die Volley-API zu verwenden. Wir werden diese Bibliothek verwenden, um HTTP-Anfragen zu senden und zu empfangen. Öffnen Sie Ihre build.gradle
Datei und fügen Sie den Link:
dependencies {
...
compile 'com.android.volley:volley:1.0.0'
}
Schritt 2:
Öffnen Sie Ihre Aktivität Datei, in der Sie die Anforderung aus machen wollen. Fügen Sie die folgenden Variablen:
String url_pre = "https://www.googleapis.com/youtube/v3/videos?id=";
String url_mid = "&key=";
String url_suf = "&part=status";
String video_id = "4pTwQKMrTt0"; //set this string be the id of your video
final String API_KEY = "your-api-key";
RequestQueue queue;
Schritt 3:
Wenn Sie nicht einen API-Schlüssel für Ihr Projekt noch gemacht haben, den Kopf über die Google Developer Console eine zu erzeugen. Fügen Sie auch android.permission.INTERNET
zu Ihren Android-Manifestberechtigungen hinzu.
Schritt 4:
Jetzt müssen wir unsere RequestQueue
und Einrichtung unserer JSON Object Request initialisieren:
queue = Volley.newRequestQueue(this);
JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.GET, url_pre + video_id + url_mid + API_KEY + url_suf, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONObject videoItem = (JSONObject) response.getJSONArray("items").get(0);
JSONObject status = videoItem.getJSONObject("status");
boolean isVideoEmbeddable = status.getBoolean("embeddable");
//isVideoEmbeddable will be equal to true if the video is embeddable, and false if it isn't.
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("My Class", "Volley Error: ",error);
}
});
queue.add(jsObjRequest);
Dieser Code funktioniert, ich habe es versucht. Wenn Sie damit zufrieden sind, stellen Sie dies bitte als die richtige Antwort ein, ich gebe viel Arbeit hinein :)
Werfen Sie einen Blick auf [diese] (https://developers.google.com/youtube/v3/docs/Suche/Liste). Offenbar können Sie mit der YouTube-Daten-API Informationen zu einem Video abrufen. Die zurückgegebenen Daten haben einen Schlüssel namens "videoEmbeddable". Ich hoffe, das hilft –
Vielen Dank für die Antwort, aber können Sie mir bei der nächsten Aufgabe helfen? So wie ich es sehe ich GET setzen können https://www.googleapis.com/youtube/v3/search?part=id&maxResults=1&q={vide.getID())}&type=video&videoEmbeddable=true&videoSyndicated=true&key = {YOUR_API_KEY} Um die Rückkehr zu erhalten. Dann muss ich herausfinden, was ich im obigen Code mit {vide.getID())} ersetzen soll, und auch, wie ich überprüfen kann, ob es mir eine Rückgabe oder einen Fehler gibt. Ich denke wie: Wenn über GET einen Wert zurückgibt, tun Sie Aufgabe 1. Else tun Aufgabe 2. Was denkst du? –
Ich werde ein bisschen mehr hineinsehen. Es könnte einen besseren Weg geben, es zu tun. (hoffentlich) –