我是 Java 和 Android Studio 的新手。
我目前正在使用 Android Studio,我可以从视频 ID 加载 YouTube 视频,但在我的应用中,我无法保持视频 ID 不变我需要经常更改 ID 而无需用户下载应用更新。我已经尝试过 Firebase 实时数据库和远程配置,但在它们中,视频都滞后,因为它们是异步下载数据的。这个问题的最佳解决方案是什么?
感谢您提前提供帮助。
这是我的 YouTube 视频 fragment :
package shah.vatsal.kinitro
public class youtubefragment extends Fragment {
private static final String API_KEY =
"AIzaSyAXjBSS9NVAewJ2Z0Z86JrlHsJbJzoP_Ns";
private static String VIDEO_ID = "mMMerxh_12U";
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup
container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.youtube_videos, container,
false);
YouTubePlayerSupportFragment youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.add(R.id.youtube_layout, youTubePlayerFragment).commit();
youTubePlayerFragment.initialize(API_KEY, new OnInitializedListener() {
@Override
public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean wasRestored) {
if (!wasRestored) {
player.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
player.loadVideo(VIDEO_ID);
player.play();
}
}
@Override
public void onInitializationFailure(Provider provider, YouTubeInitializationResult error) {
// YouTube error
String errorMessage = error.toString();
Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_LONG).show();
Log.d("errorMessage:", errorMessage);
}
});
return v;
}
}
YouTube 布局:
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/youtube_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<FrameLayout
android:id="@+id/youtube_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
最佳答案
我确信我的建议不会遵循您尝试采取的路径,但您可以通过设置一个放置视频的网页然后从 WebView 加载它来轻松实现这一点,这样您就可以简单地如果您没有设置缓存系统或者您只是清除缓存系统(无论您是否设置缓存系统),则更改网页和视频将在用户下次运行该应用程序时更新。
这比尝试处理 Firebase 开发环境(我发现它很复杂)要容易得多,但是如果页面没有得到很好的优化,您可能会在加载页面时遇到一些延迟;然而,您今天可以通过简单地设置一个 Tumblr 空间来解决这个问题,例如,您可以不时地更改提供的链接以展示不同的视频。
即使您想在 Activity 中显示除 WebView 之外的其他元素,您也可以通过一些限制来实现,或者您可以只在网页本身上插入您喜欢的内容(这主要取决于您的实际需要)。
这是一个Kotlin WebView sample如果您不熟悉它,您可以在这里了解更多关于 WebViews 的信息一般而言。
关于java - 如何通过所需的视频 ID 在 Android 应用程序中显示 Youtube 视频,以便从服务器设置 ID,以便稍后更改 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50163730/