2011-03-29 12 views
19

पर क्लिक करके कच्चे संसाधन से एमपी 3 फ़ाइल चलाएं हाय दोस्तों, जब कोई टेक्स्ट क्लिक किया जाता है तो मैं एक निश्चित एमपी 3 फ़ाइल खेलना चाहता हूं।एंड्रॉइड: टेक्स्टव्यू

package com.example.playword; 

import java.io.IOException; 

import android.app.Activity; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
//import android.os.Handler; 
import android.view.View; 
//import android.view.View.OnClickListener; 
//import android.widget.Button; 
import android.widget.TextView; 

public class PlayWord extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     //final Handler mHandler = new Handler(); 

     final TextView nicholas = (TextView) findViewById(R.id.nicholas); 
     final TextView was = (TextView) findViewById(R.id.was); 

     nicholas.setText("Nicholas "); 
     was.setText("was ");   

     /* 
     Button btn = (Button) (findViewById(R.id.nicholasBtn)); 

     btn.setOnClickListener(new OnClickListener(){ 
      @Override 
      public void onClick(View v) { 
       nicholas.setText("Nicholas (Clicked!) "); 
      } 

      }); 
     */ 

     View.OnClickListener handler = new View.OnClickListener(){ 
      public void onClick(View v) { 
       switch (v.getId()) { 
        case R.id.nicholas: // doStuff 

         MediaPlayer mPlayer = MediaPlayer.create(null, R.raw.aaanicholas); 

         try { 
          mPlayer.prepare(); 
         } catch (IllegalStateException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } catch (IOException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 

         mPlayer.start(); 

         nicholas.setText("Nicholas (Clicked!) "); 
         break; 

        case R.id.was: // doStuff 

         MediaPlayer mPlayer1 = MediaPlayer.create(null, R.raw.aaawas); 

         try { 
          mPlayer1.prepare(); 
         } catch (IllegalStateException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } catch (IOException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 

         mPlayer1.start(); 

         was.setText("was (Clicked!) "); 
         break; 
       } 
      } 
     }; 

     findViewById(R.id.nicholas).setOnClickListener(handler); 
     findViewById(R.id.was).setOnClickListener(handler); 

    } 
} 

जब मैं चलाएँ: उदाहरण के लिए, मैं शब्द "निकोलस", एप्लिकेशन nicholas.mp3 खेलने के लिए है ... क्लिक किया

मेरी गन्दा कोड के लिए क्षमा करें, मैं एंड्रॉयड देव के लिए नया हूँ यह, मुझे एक बल बंद त्रुटि मिल रही है .. क्या आपके पास इस पर एक बेहतर विचार है? अग्रिम में बहुत धन्यवाद!

उत्तर

44

आप MediaPlayer.create विधि में एक संदर्भ उदाहरण में पारित करने के लिए की जरूरत है:

MediaPlayer mPlayer = MediaPlayer.create(PlayWorld.this, R.raw.aaanicholas); 

इसके अलावा, create() कॉल के बाद, तैयार पहले से ही क्रियान्वित किया जाता है, तो आप सिर्फ start() सही आह्वान, यह स्पष्ट रूप से निष्पादित करने के लिए की जरूरत नहीं है create() के बाद।

4

जब आप mPlayer ऑब्जेक्ट बनाते हैं तो आपको इसे कॉन्टेक्स्ट पास करना चाहिए, जो आपके मामले में PlayWord.this है।

0
MediaPlayer mPlayer = MediaPlayer.create(FakeCallScreen.this, R.raw.mysoundfile); 
    mPlayer.start(); 
+0

कृपया कोड-केवल उत्तर देने से बचें। यह समझाने की कोशिश करें कि आपका कोड ओपी की समस्या को कैसे हल करता है। यदि आप कुछ संदर्भ और प्रदर्शनी प्रदान कर सकते हैं, तो यह हर किसी के लिए विशेष रूप से कम अनुभवी है। –