2016-07-29 38 views
2

問題是聲音不起作用。爲什麼MediaPlayer中的聲音無法播放?

當我運行在(安卓MOINTOR)這句話出現在應用程序 「d/AbsListView:unregisterIRListener()被稱爲」

的MainActivity.java代碼

public class MainActivity extends AppCompatActivity { 
    @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ArrayList<String> list = new ArrayList<String>(); 
     list.add("item1"); 


     //instantiate custom adapter 
     List adapter = new List(list, this); 

     //handle listview and assign adapter 
     ListView lView = (ListView)findViewById(R.id.listView); 
     lView.setAdapter(adapter); 
    } 

} 

名單。 java代碼:

public class List extends BaseAdapter implements ListAdapter { 
    private ArrayList<String> list = new ArrayList<String>(); 
    private Context context; 
    MediaPlayer mediaPlayer; 


    public List(ArrayList<String> list, Context context) { 
     this.list = list; 
     this.context = context; 
    } 

    @Override 
    public int getCount() { 
     return list.size(); 
    } 

    @Override 
    public Object getItem(int pos) { 
     return list.get(pos); 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     View view = convertView; 
     if (view == null) { 
      LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      view = inflater.inflate(R.layout.activity_list, null); 
     } 

     //Handle TextView and display string from your list 
     TextView listItemText = (TextView)view.findViewById(R.id.list_item_string); 
     listItemText.setText(list.get(position)); 

     //Handle buttons and add onClickListeners 

     Button addBtn = (Button)view.findViewById(R.id.add_btn); 


     addBtn.setOnClickListener(new View.OnClickListener(){ 


      @Override 
      public void onClick(View v) { 
        MediaPlayer.create(List.this.context, R.raw.people) 
         mediaPlayer.start(); 
       notifyDataSetChanged(); 
      } 
     }); 

     return view; 
    } 
} 
+0

你能告訴logcat的? –

+0

你是什麼意思「的logcat」 – abdelrhman

+0

我必須回答以下...查看 –

回答

1

試試這個:

@Override 
public void onClick(View v) { 
    mediaPlayer = MediaPlayer.create(context,R.raw.people); 
    mediaPlayer.start(); 
    notifyDataSetChanged(); 
} 
+0

mediaPlayer = MediaPlayer.create(this,R.raw.people);這句話給出了一個錯誤,它不起作用 – abdelrhman

+0

什麼是錯誤? –

+0

問題是IDE(在List.java中)無法解析此方法mediaPlayer.create(this,R.raw.people); – abdelrhman

1

你可以用下面的方法來播放聲音。它可以從存儲或從互聯網網址播放。

public void playAudio(String audioPath) { 
    try { 
     MediaPlayer mp = new MediaPlayer(); 
     mp.setAudioStreamType(AudioManager.STREAM_MUSIC); 
     mp.setDataSource(audioPath); 
     mp.prepare(); 
     mp.start(); 
     Log.d(TAG, "is playing audio..."); 
    } catch (Exception e) { 
     Log.d(TAG, "cannot play audio: " + e.toString()); 
    } 
} 
+0

IDE無法解析TAG – abdelrhman

+0

@abdelrhman標籤只是一些隨機字符串值 –

1

我認爲你必須改變thiscontext

addBtn.setOnClickListener(new View.OnClickListener(){ 


     @Override 
     public void onClick(View v) { 
      mediaPlayer.create(context,R.raw.people); 
      mediaPlayer.start(); 
      notifyDataSetChanged(); 
     } 
    }); 
+0

仍然沒有工作 – abdelrhman

+0

,你能否告訴登錄? –

+0

沒有日誌...聲音無法播放。閱讀問題 –