Können wir YouTube-Videos in der Android-App ansehen? Ich meine, wenn wir einen Link zum Video auf YouTube haben, können wir es im VideoView oder einem anderen Widget abspielen? Irgendwelche Ideen dazu?
Antworten
Zu viele Anzeigen?Die Antwort ist einfach "JA".
Bitte schauen Sie sich den folgenden Link an,
Wie kann ich ein YouTube-Video in meiner Android-Anwendung abspielen?
Als erstes sollten Sie versuchen, die Youtube-Player-Bibliothek für Android über den folgenden Link herunterzuladen:
Sie sollten es zuerst so installieren: Projekt -> Menü: Datei > Struktur > Registerkarte Abhängigkeiten > Hinzufügen -> Bibliotheksabhängigkeit
Wenn es nicht funktioniert, versuchen Sie bitte eines dieser beiden:
Fügen Sie die Abhängigkeit der Bibliothek innerhalb der Abhängigkeit innerhalb der build.gradle-Datei der Bibliothek hinzu, die Sie verwenden, und fügen Sie Ihre Bibliothek in Externe Bibliotheken ein.
ODER
Gehen Sie einfach zu Ihrem libs-Ordner im app-Ordner und fügen Sie dort alle Ihre .jar z.B. Bibliotheksdateien ein. Jetzt kommt der Trick: Gehen Sie zur settings.gradle-Datei und fügen Sie diese Zeile hinzu: include ':app:libs' nach include ':app'. Es wird definitiv funktionieren.
Dann sollten Sie ein Layout wie dieses haben:
Und Sie können eine Player-Aktivität wie diese haben:
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayerView;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.youtube.YouTube;
import java.io.IOException;
public class YoutubeActivity extends YouTubeBaseActivity{
private YouTubePlayerView playerView;
private YouTube youtube;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_youtube);
youtube = new YouTube.Builder(new NetHttpTransport(),
new JacksonFactory(), new HttpRequestInitializer() {
@Override
public void initialize(HttpRequest hr) throws IOException {}
}).setApplicationName(this.getString(R.string.app_name)).build();
playerView = (YouTubePlayerView)findViewById(R.id.player_view);
playerView.initialize("Ihr API-Schlüssel", new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
if(!b){
String videoId = getIntent().getExtras().getString("videoID");
youTubePlayer.cueVideo(videoId);
}
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
Toast.makeText(getApplicationContext(), getString(R.string.failed), Toast.LENGTH_LONG).show();
}
});
}
}
Es gibt eine offizielle YouTube Android Player API, die du verwenden kannst. Dies ist etwas komplizierter, aber es funktioniert besser als andere Lösungen, die Webclients verwenden.
Zunächst musst du deine App in der Google-API-Konsole registrieren. Dies ist vollkommen kostenlos, bis deine App über 25.000 Anfragen im Monat erhält (oder so ähnlich). Es gibt vollständige und großartige Tutorials unter dem Link. Ich hoffe, du kannst sie verstehen. Wenn nicht, frag! :)
Sie können WebView verwenden, um dies zu tun. Hier ist der Bildschirm von dem, wie es mit WebView aussieht: -
Wenn das ist, was Sie erreichen wollen, können Sie die Beispiel-App hier bekommen: - https://github.com/hiteshsahu/Android-Universal-Web-Content-Loader
Es unterstützt sowohl den Porträt- als auch den Landschaftsmodus.
Um ein Youtube-Video zu implementieren, verweisen Sie auf diesen Beitrag
http://www.feelzdroid.com/2017/01/embed-youtube-video-player-android-app-example.html
Hier sind detaillierte Schritte mit bildlichen Darstellungen hinzugefügt, wenn Sie auf Probleme stoßen, lassen Sie es mich wissen.
Danke