11

पर प्रदर्शित नहीं किया गया है मुझे सैमसंग एस 3 (एंड्रॉइड 4.1.1) में एक वीडियो चलाने में समस्या है, ऐसा लगता है क्योंकि वीडियोव्यू एक टुकड़े पर है क्योंकि अगर मैं इसे चालू और गतिविधि करता हूं, तो काम करता है। इसके अलावा मुझे पता चला कि अगर मैं GPU हार्डवेयर त्वरण चालू करता हूं, तो वीडियो काम करता है। मेरे पास एक SurfaceView पर चित्रण करके भी एक गेम है और यह दृश्य भी काम नहीं करता है (केवल GPU पर) ... बाकी ऐप सामग्री को प्रदर्शित किया जाता है जैसा कि यह माना जाता है (बटन और अन्य लेआउट)।वीडियोव्यू को फ्रैगमेंट

मैं नेक्सस एस पर और एम्युलेटर पर ऐप्लिकेशन का परीक्षण किया है और यह अन्य उपकरणों पर ठीक काम करता है, यह भी ..

किसी को क्या समस्या हो सकती है पता है? धन्यवाद!

और यहाँ कोड है:

public class VideoFragment extends Fragment implements MediaPlayer.OnCompletionListener, 
     MediaPlayer.OnPreparedListener, MediaPlayer.OnErrorListener { 

    private Video mVideo; 
    private VideoView mVideoView; 
    // The video position 
    private int mPosition; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View fragmentView = inflater.inflate(R.layout.screen_video, container, false); 

     mVideoView = (VideoView) fragmentView.findViewById(R.id.VideoView); 

     return fragmentView; 
    } 


    @Override 
    public void onPause() { 
     super.onPause(); 

     // Pause the video if it is playing 
     if (mVideoView.isPlaying()) { 
      mVideoView.pause(); 
     } 

     // Save the current video position 
     mPosition = mVideoView.getCurrentPosition(); 
    } 

    @Override 
    public void onResume() { 
     super.onResume(); 

     mVideoView.setOnCompletionListener(this); 
     mVideoView.setOnPreparedListener(this); 
     mVideoView.setOnErrorListener(this); 
     mVideoView.setKeepScreenOn(true); 

     // Initialize the media controller 
     MediaController mediaController = new MediaController(getActivity()); 
     mediaController.setMediaPlayer(mVideoView); 
     // Set-up the video view 
     mVideoView.setMediaController(mediaController); 
     mVideoView.requestFocus(); 
     mVideoView.setVideoPath(mVideo.getUrl()); 

     if (mVideoView != null) { 
      // Restore the video position 
      mVideoView.seekTo(mPosition); 
      mVideoView.requestFocus(); 
     } 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 

     // Clean-up 
     if (mVideoView != null) { 
      mVideoView.stopPlayback(); 
      mVideoView = null; 
     } 
    } 

    @Override 
    public void onCompletion(MediaPlayer mediaPlayer) { 
     Log.e("VIDEO PLAY", "end video play"); 
    } 

    @Override 
    public void onPrepared(MediaPlayer mediaPlayer) { 
     // Start the video view 
     mediaPlayer.start(); 
     Log.e("VIDEO PLAY", "video ready for playback"); 
    } 

    @Override 
    public boolean onError(MediaPlayer mediaPlayer, int i, int i1) { 
     Log.e("VIDEO PLAY", "error: " + i); 
     return true; 
    } 

} 

मैं इसे संदर्भ (अनुप्रयोग या गतिविधि) से संबंधित कुछ नहीं लगता है .. क्योंकि सभी अन्य उपकरणों पर वीडियो और खेल प्रदर्शित किए जाते हैं .. धन्यवाद मदद के लिए!

+0

कृपया वीडियो व्यू से संबंधित फ्रैगमेंट और लेआउट कोड पोस्ट करें। इसके बिना, यह कहना मुश्किल है कि क्या गलत हो रहा है। –

+0

कोड भी जोड़ा गया, क्षमा करें .. बात यह है कि मैं इस वीडियो फ्रैगमेंट क्लास और एक गेम का उपयोग करता हूं जो वास्तव में एक SurfaceView है और मैं उस सतह पर आकर्षित करता हूं इसलिए मुझे नहीं लगता कि यह मेरे कोड से संबंधित है .. यदि स्क्रीन एक गतिविधि पर चलाएं तो दोनों ठीक काम करें ..मदद के लिए धन्यवाद – Cata

उत्तर

1

हार्डवेयर त्वरण कि डिवाइस पर तो मैं करूंगा enable it for that view/window आपकी समस्या ठीक हो तो।

सामान्य में मैंने पाया है कि जब कोड एक डिवाइस पर काम करता है लेकिन नहीं एक और यह आम तौर पर निम्न समस्याओं में से एक के कारण होता है: निर्माता की API कार्यान्वयन की

  • अलग व्याख्या में

    1. बग निर्माता
    2. संगामिति समस्या (जैसे रेस स्थिति, अनुचित समन्वयन) में आपके स्वयं के कोड में से एपीआई ऐसा होता है किसी विशिष्ट उपकरण पर बार-बार ट्रिगर करने के लिए

    जहाँ तक मैं आपको बता सकता हूं कि आप यूआई थ्रेड का उचित उपयोग कर रहे हैं, इसलिए मुझे लगता है कि आपकी समस्या पहले दो श्रेणियों में से एक में आती है और आपको बस इसके आसपास काम करने की आवश्यकता होगी।

  • +0

    हाय और आपके उत्तर के लिए धन्यवाद। मैंने सोचा कि अंक 1 या 2 मेरा मामला हो सकता है .. मैंने सोचा कि शायद किसी को भी एक ही समस्या का अनुभव हो सकता है और इसका समाधान हो सकता है .. अब तक यह सबसे अच्छा जवाब है और मैं इसे उत्तर के रूप में स्वीकार करूंगा – Cata

    4

    मैं एक ऐसी ही समस्या है, और मैं इसे बदल रहा है हल:

    MediaController mediaController = new MediaController(getActivity().getApplicationContext()); 
    
    इस के लिए

    (एक fragmet में):

    MediaController mediaController = new MediaController(getActivity()); 
    

    आशा इस मदद करता है, ...

    संपादित करें

    इस कक्षा को देखें

    http://code.google.com/p/sinaweibo-honeycomb/source/browse/branches/sinaweibo-merged/src/com/lenovo/dll/SinaWeibo/VideoFragment.java?r=71

    +0

    हाय, टिप्पणी के लिए धन्यवाद, मैं पहले से ही gatActivity() का उपयोग करता हूं .. मुझे लगता है कि यह फ्रैगमेंट और सर्फेस व्यू से संबंधित कुछ है क्योंकि मुझे लगता है कि वीडियो और गेम में यह दृश्य आम है .. – Cata

    0

    MediaController mediaController = new MediaController(getActivity())onResume() से onCreateView पर ले जाएं।

    संबंधित मुद्दे