2015-01-12 27 views
0

打我有以下代碼:介質無法從原文件夾

animalGallery.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

        @Override 
        public void onItemClick(AdapterView<?> arg0, View arg1, 
          int arg2, long arg3) { 
         // TODO Auto-generated method stub 

         animalView.setImageResource(symbolIds[arg2]); 

String imageName = getResources().getResourceEntryName(
          symbolIds[arg2]); 

        Toast.makeText(getApplicationContext(), imageName, 
          Toast.LENGTH_LONG).show(); 

        int audioId = getResources().getIdentifier(
          imageName, null, getPackageName()); 


         try { 
          MediaPlayer mp = MediaPlayer.create(
           getApplicationContext(), audioId); 

         mp.start(); 

         } catch (Exception e) { 
          Toast.makeText(getApplicationContext(), 
            "not working", Toast.LENGTH_LONG).show(); 
         } 

        } 
       }); 

當我運行此代碼,然後我得到正確imageName

所有我的mp3文件都在raw文件夾中。

我想根據imagename播放mp3文件。

suppose imageName='hardweell" then the hardweell.mp3 is must be play 

媒體沒有播放。它每次都會捕獲。

那麼我該如何解決這個問題?

下面就是文件崩潰日誌:

01-12 18:01:55.518: I/View(26260): Touch down dispatch to android.widget.ImageView{42813e88 VFED.... ..S..... 0,0-450,200}, event = MotionEvent { action=ACTION_DOWN, id[0]=0, x[0]=101.81146, y[0]=115.70969, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=20852614, downTime=20852614, deviceId=3, source=0x1002 } 
01-12 18:01:55.524: I/View(26260): Touch down dispatch to android.widget.Gallery{42761308 VFED.... ......I. 0,0-450,200 #7f09000e app:id/animalGallery}, event = MotionEvent { action=ACTION_DOWN, id[0]=0, x[0]=101.81146, y[0]=115.70969, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=20852614, downTime=20852614, deviceId=3, source=0x1002 } 
01-12 18:01:55.526: D/VelocityTracker(26260): Couldn't open '/dev/touch' (Permission denied) 
01-12 18:01:55.526: D/VelocityTracker(26260): tpd read x fail: Bad file number 
01-12 18:01:55.526: D/VelocityTracker(26260): tpd read y fail: Bad file number 
01-12 18:01:55.602: I/View(26260): Touch up dispatch to android.widget.Gallery{42761308 VFED.... ......I. 0,0-450,200 #7f09000e app:id/animalGallery}, event = MotionEvent { action=ACTION_UP, id[0]=0, x[0]=101.81146, y[0]=115.70969, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=20852703, downTime=20852614, deviceId=3, source=0x1002 } 
01-12 18:01:55.603: V/Provider/Settings(26260): from settings cache , name = sound_effects_enabled , value = 0 
01-12 18:01:55.612: W/ResourceType(26260): No package identifier when getting value for resource number 0x00000000 
01-12 18:01:55.629: D/GraphicBuffer(26260): create handle(0x60e6f328) (w:544, h:960, f:1) 
01-12 18:01:55.634: D/OpenGLRenderer(26260): prepareDirty (0.00, 0.00, 540.00, 960.00) opaque 1 <0x616f2f80> 
01-12 18:01:55.635: D/OpenGLRenderer(26260): finish <0x616f2f80> 
01-12 18:01:55.685: D/GraphicBuffer(26260): create handle(0x60e74e70) (w:112, h:66, f:1) 
01-12 18:01:58.045: D/dalvikvm(26260): threadid=11: exiting 
01-12 18:01:58.045: D/dalvikvm(26260): threadid=11: bye! 
01-12 18:01:59.114: D/GraphicBuffer(26260): close handle(0x60e74e70) (w:112 h:66 f:1) 
01-12 18:01:59.173: D/GraphicBuffer(26260): create handle(0x61d828a8) (w:144, h:66, f:1) 
01-12 18:02:02.618: D/GraphicBuffer(26260): close handle(0x61d828a8) (w:144 h:66 f:1) 
01-12 18:02:34.102: D/ActivityThread(26260): ACT-AM_ON_PAUSE_CALLED ActivityRecord{426311c8 [email protected] {com.example.kidzgk/com.example.kidzgk.AnimalsLearnPage}} 
01-12 18:02:34.122: D/ActivityThread(26260): ACT-PAUSE_ACTIVITY handled : 0/[email protected] 
01-12 18:02:34.124: D/ActivityThread(26260): ACT-STOP_ACTIVITY_SHOW handled : 0/[email protected] 
01-12 18:02:34.131: V/InputMethodManager(26260): START INPUT: com.android.internal.policy.impl.PhoneWindow$DecorView{426324a8 V.E..... R....... 0,0-540,960} ic=null [email protected] controlFlags=#100 
+0

可能重複視頻從原始文件夾(VideoView)](http://stackoverflow.com/questions/3609219/trying-to-play-video-from-raw-folder-videoview) –

回答

1

如果文件是內部raw文件夾,然後通過將使用R.raw.<filename>視頻ID作爲準備的媒體播放器:試圖播放的

int audioId = getResources().getIdentifier(imageName, null, getPackageName()); 
MediaPlayer mp = MediaPlayer.create(getApplicationContext(),audioId); 
+0

沒有。它顯示強制停止錯誤。 – siddharth

+0

@siddharth:發佈日誌的問題可能是你通過文件的錯誤ID –

+0

哦..是的,我錯了。圖像位於不同的文件夾中,媒體文件位於不同的文件夾中。 – siddharth