2013-05-06 5 views
0

저는 Android를 처음 사용하고있어서 현재 작업중인 프로젝트에 필요합니다. 버튼을 클릭하여 사운드를 재생해야합니다. 온라인 자습서를 따랐지만 코드가 사운드를 전혀 재생하지 못하고 MediaPlayer 오류 (-19,0)에 오류가 발생합니다. 나는 내가 여기에서 보았던 많은 수정을 시도했다. 그리고 나는 그것을 움직이게 할 수 없다. 어떤 도움이 필요합니까? 코드는 다음과 같습니다버튼 클릭시 Android MediaPlayer 소리가 재생되지 않습니다.

import android.media.AudioManager; 
import android.media.MediaPlayer; 
import android.media.MediaPlayer.OnCompletionListener; 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends Activity { 
    MediaPlayer player; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     try { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      AudioManager audioManager = (AudioManager)  getSystemService(MainActivity.AUDIO_SERVICE); 
      audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0); 

      Button buttonHello = (Button) findViewById(R.id.button1); 
      buttonHello.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        MediaPlayer mp = Medi aPlayer.create(MainActivity.this, R.raw.button); 
        mp.start(); 
        mp.setOnCompletionListener(new OnCompletion Listener() { 
         public void onCompletion(MediaPlayer mp) { 
          mp.release(); 

         }; 
        }); 
       } 
      }); 
     } catch (Exception e) { 
      System.out.println("Error!"); 
     } 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 
+1

언제 오류가 발생합니까? 'create()'또는'start'에? 예외에 관련 메시지/추적이 있습니까? – fiddler

+0

(플레이어를 시작하기 전에 청취자를 설정해야합니다) – fiddler

+1

파일을 mediaplayer에 어디에 보냅니 까? – Gunaseelan

답변

0

이 링크 http://marakana.com/forums/android/examples/59.html에는 MediaPlayer 클래스를 사용하여 원본 폴더에서 노래를 재생하는 좋은 예가 있습니다.

파일에서 파일을 재생하려면 다음 코드를 사용할 수 있습니다.

MediaPlayer mp = new MediaPlayer(); 
     mp.reset(); 
     ContentValues values = new ContentValues();      
     values.put(MediaStore.Images.Media.DATA, filename.getAbsolutePath()); 
      Uri selectedImage=RingtoneDownload.this.getContentResolver().insert(
          MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
         try { 
          mp.setDataSource(RingtoneDownload.this,selectedImage); 
          mp.prepare(); 
          mp.start(); 
         }catch (Exception e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 

이 코드는 원본 파일을 설정하는 동안 작동합니다.

관련 문제