Android youtubePlayerFragmnet-无法创建用于播放youtube视频的片段
我需要在一个片段中播放youtube视频,即FragmentVideo。FragmentVideo是使用FragmentStatePagerAdapter创建的一个数量4 当我滚动到一个页面碎片视频应该显示视频形式的链接视频链接。 我真的在寻找如何完成这件事。大多数示例都是创建一个活动,但我需要在一个页面中使用它,其中相应的片段应该处理视频播放。 还基于片段状态暂停、恢复、onsavestateinstance视频播放应停止、恢复等 谁能帮帮我吗。 我已经有了所有的网络接入Android youtubePlayerFragmnet-无法创建用于播放youtube视频的片段,android,android-fragments,youtube,Android,Android Fragments,Youtube,我需要在一个片段中播放youtube视频,即FragmentVideo。FragmentVideo是使用FragmentStatePagerAdapter创建的一个数量4 当我滚动到一个页面碎片视频应该显示视频形式的链接视频链接。 我真的在寻找如何完成这件事。大多数示例都是创建一个活动,但我需要在一个页面中使用它,其中相应的片段应该处理视频播放。 还基于片段状态暂停、恢复、onsavestateinstance视频播放应停止、恢复等 谁能帮帮我吗。 我已经有了所有的网络接入 packag
package com.test.myTestingapp;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayer.OnInitializedListener;
import com.google.android.youtube.player.YouTubePlayer.Provider;
import com.google.android.youtube.player.YouTubePlayerSupportFragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* A simple {@link android.support.v4.app.Fragment} subclass.
*
*/
public class FragmentVideo extends Fragment implements YouTubePlayer.OnInitializedListener {
public static final String ARG_SECTION_NUMBER = "section_number";
public static final String TAG ="LOGTAG";
public View rootView;
public String videolink;
public int loc;
public static final String API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
public static final String VIDEO_ID = "o7VVHhK9zf0";
public static FragmentVideo newInstance(String param1, String param2) {
FragmentVideo fragment = new FragmentVideo();
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
}
public FragmentVideo() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
rootView = inflater.inflate(R.layout.fragment_video, container, false);
videolink = getArguments().getString("VIDEOLINK");
if(videolink == null) {
return rootView;
}
Log.i(TAG, "FragmentVideo: received videolink: " + videolink);
YouTubePlayerSupportFragment ypf = new YouTubePlayerSupportFragment();
ypf.initialize(API_KEY, this);
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.youtubeplayerfragment, ypf);
fragmentTransaction.commit();
return rootView;
}
@Override
public void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
}
@Override
public void onInitializationFailure(Provider arg0,
YouTubeInitializationResult arg1) {
// TODO Auto-generated method stub
}
@Override
public void onInitializationSuccess(Provider arg0, YouTubePlayer arg1,
boolean arg2) {
// TODO Auto-generated method stub
if(!arg2)
arg1.cueVideo(videolink);
}
}
和LogCat输出:
09-29 18:57:10.065: E/InputEventReceiver(1615): Exception dispatching input event.
09-29 18:57:10.065: D/AndroidRuntime(1615): Shutting down VM
09-29 18:57:10.069: W/dalvikvm(1615): threadid=1: thread exiting with uncaught exception (group=0xa4bb0648)
09-29 18:57:10.081: E/AndroidRuntime(1615): FATAL EXCEPTION: main
09-29 18:57:10.081: E/AndroidRuntime(1615): java.lang.NoClassDefFoundError: com.test.myTestingapp.FragmentVideo
09-29 18:57:10.081: E/AndroidRuntime(1615): at com.test.myTestingapp.MainActivity$SectionsPagerAdapter.getItem(MainActivity.java:278)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.app.FragmentStatePagerAdapter.instantiateItem(FragmentStatePagerAdapter.java:105)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:832)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.view.ViewPager.populate(ViewPager.java:1048)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.view.ViewPager$3.run(ViewPager.java:244)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.view.ViewPager.completeScroll(ViewPager.java:1761)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.view.ViewPager.scrollToItem(ViewPager.java:579)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:551)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:509)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.view.ViewPager.dataSetChanged(ViewPager.java:908)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.view.ViewPager$PagerObserver.onChanged(ViewPager.java:2819)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.view.PagerAdapter.notifyDataSetChanged(PagerAdapter.java:276)
09-29 18:57:10.081: E/AndroidRuntime(1615): at com.test.myTestingapp.MainActivity$1.onPageSelected(MainActivity.java:89)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.view.ViewPager.scrollToItem(ViewPager.java:567)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:551)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.support.v4.view.ViewPager.onTouchEvent(ViewPager.java:2015)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.view.View.dispatchTouchEvent(View.java:7384)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2205)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1940)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1954)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1954)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1954)
09-29 18:57:10.081: E/AndroidRuntime(1615): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1966)
09-29 18:57:10.081: E/AndroidRuntime(1615): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1418)
09-29 18:57:10.081: E/AndroidRuntime(1615): at android.app.Activity.dispatchTouchEvent(Activity.java:2424)
09-29 18:57:10.081: E/AndroidRuntime(1615): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1914)
我需要片段视频,应该播放youtube视频,播放/暂停等。。
如何实现这一点?请查看mainactivity中的第278行。您是logcat,它清楚地告诉您链接278的问题代码在哪里是ifposition==3{fragment=new FragmentVideo;args.putinfragmentvideo.ARG_节号,位置+1;args.putStringVIDEOLINK,;},其中fragment是fragment类型。它与创建其他片段的代码完全相同。我想我在FragmetnVideo的实现中弄乱了一些细节。还是我在这里遗漏了什么?