- Update 09/05/2016 17:10 - Das Problem scheint mit dem Datum der Veröffentlichung des Videos verwandt zu sein ... In der letzten Aprilwoche postete ich viele Videos auf YouTube, die bis 19:00 Uhr am 27. April veröffentlicht wurden, funktionieren ordnungsgemäß, während diejenigen, die am selben Tag um 21:15 Uhr angeklagt wurden, das Thema diskutiert haben, als wären zwischen dem 19. und 21. April des 27. April einige Aktualisierungen oder Änderungen am Videos von YouTube. Ich habe versucht, jetzt ein neues Video zu laden, und das hat auch das gleiche Problem.YouTubeAndroidPlayerAPI kann einige Videos nicht abspielen
ich ein seltsames Problem mit YouTubeAndroidPlayerAPI haben .. Ich benutze YouTubePlayerSupportFragment (aber ich habe das gleiche Problem mit YouTubePlayerFragment) Videos in meiner app, einige Video spielen perfekt, andere zeigen die Fehlermeldung „Es gab ein Problem zu spielen während des Spielens. Zum Wiederholen tippen. ".
Wenn diese im Android-Monitor passieren Ich sehe die YouTube-API-Fehler:
05-08 11:25:22.145 20521-20521/? E/YouTubeAndroidPlayerAPI: fmt.noneavailable
oae: Video not supported/available
at oab.a(SourceFile:212)
at nvl.a(SourceFile:383)
at nvl.a(SourceFile:706)
at nvr.a(SourceFile:1144
at nsn.onPostExecute(SourceFile:2102)
at android.os.AsyncTask.finish(AsyncTask.java:651)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
Wenn ich das YouTube-Symbol im Video tippe sie in der YouTube-Anwendung zu spielen, wird das Video richtig in den offiziellen gespielt App
Wenn im Video die Monetarisierung aktiv ist, wird das Anzeigenvideo normal angezeigt. Am Ende wird der Fehler angezeigt.
Ich habe versucht:
- Verwenden YouTubePlayerFragment statt YouTubePlayerSupportFragment
- Verwenden Aktivität statt AppCompatActivity
- einbetten Video in einer HTML-Seite, es funktioniert richtig
- Deactive Monetisierung, ändert sich nichts
- Verschiedene Tasten, eine für das Debuggen und eine für die Freigabe
Vielen Dank für Ihre Hilfe!
-Update 2016.11.05 Es scheint ein YouTube Bug zu sein; Die einzige passable Problemumgehung zu diesem Zeitpunkt scheint das Video in der offiziellen YouTube-App mit einer Absicht zu öffnen oder das Player-Fragment durch ein WebView zu ersetzen. Der Standard-WebView ist sehr begrenzt und zeigt nicht die Schaltfläche, um das Video im Vollbildmodus anzuzeigen. Sie müssen eine Klasse erstellen, die WebChromeClient erweitern:
public class MyWebChromeClient extends WebChromeClient {
FrameLayout.LayoutParams LayoutParameters = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
if (mCustomView != null) {
callback.onCustomViewHidden();
return;
}
mContentView = (LinearLayout) findViewById(R.id.scheda_video_activity);
mContentView.setVisibility(View.GONE);
mCustomViewContainer = new FrameLayout(SchedaVideoActivity.this);
mCustomViewContainer.setLayoutParams(LayoutParameters);
mCustomViewContainer.setBackgroundResource(android.R.color.black);
view.setLayoutParams(LayoutParameters);
mCustomViewContainer.addView(view);
mCustomView = view;
mCustomViewCallback = callback;
mCustomViewContainer.setVisibility(View.VISIBLE);
setContentView(mCustomViewContainer);
}
@Override
public void onHideCustomView() {
if (mCustomView == null) {
return;
} else {
mCustomView.setVisibility(View.GONE);
mCustomViewContainer.removeView(mCustomView);
mCustomView = null;
mCustomViewContainer.setVisibility(View.GONE);
mCustomViewCallback.onCustomViewHidden();
mContentView.setVisibility(View.VISIBLE);
setContentView(mContentView);
}
}
}
und initialisieren Sie dann die WebView:
WebView myWebView = (WebView)findViewById(R.id.webview);
MyWebChromeClient mWebChromeClient = new MyWebChromeClient();
myWebView.setWebChromeClient(mWebChromeClient);
myWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
Schließlich laden Sie das Video in der WebView:
myWebView.loadUrl("https://www.youtube.com/embed/"+youtube_id);
Wenn Sie die WebView-Dimensionen an den YouTube-Player anpassen möchten, können Sie dies tun:
Point size = new Point();
getWindowManager().getDefaultDisplay().getSize(size);
myWebView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, (int)Math.round(size.x/1.77)));
Einige Updates: Ich habe die YouTube App auf die Version 11.10 heruntergestuft.60 (siehe die Antworten unten), aber das Problem bleibt bestehen; Also habe ich auf die Fabrikversion 10.28.60 heruntergestuft und kann kein Video sehen, ich erhalte den Fehler DEVELOPER_KEY_INVALID. – frabbe
Ich weiß nicht, ob es helfen kann, aber ich habe dieses Problem nur mit den letzten Videos auf Youtube hochgeladen. Vielleicht kann eine aktuelle Formatänderung das verursachen? –
Ja, das Problem scheint mit dem Datum der Veröffentlichung des Videos zusammenhängen ... In der letzten Aprilwoche habe ich viele Videos auf YouTube gepostet, die bis 19:00 Uhr vom 27. April veröffentlichten funktionieren ordnungsgemäß, während diejenigen mit 21 berechnet: 15 am selben Tag wurde das Thema diskutiert, als wären zwischen dem 19. und 21. April vom 27. April einige Updates oder Änderungen der Videos von YouTube eingeführt worden. Ich habe versucht, jetzt ein neues Video zu laden, und das hat auch das gleiche Problem. – frabbe