我有一个列表视图,其中包含媒体文件的链接,它工作正常,但没有mediacontroller,应用mediacontroller后,我无法在mediacontroller的外观中从列表中选择其他项目,我只能滚动列表视图,但我无法选择任何项目。如何在Mediacontroller出现期间使列表视图可选?
注意:当mediacontroller被隐藏时,它可以正常工作。
注2:播放媒体文件时始终显示媒体控制器。
由于
[编辑]
这是我的布局代码,请看返回按钮(该按钮是可点击的),但项目列表不是......
.....
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:id="@+id/main_audio_player"
android:orientation="horizontal"
></LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="100dp"
>
<Button
android:layout_width="150dp"
android:layout_height="50dp"
android:text="Return"
android:id="@+id/btnReturn"
android:clickable="true"
android:layout_marginTop="10dp"
>
</Button>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/lvPlaylist"
android:alpha="0.3">
</ListView>
</LinearLayout>
</LinearLayout>
</LinearLayout>
.....
[编辑2]
这是我的onPrepared功能
public void onPrepared(MediaPlayer mediaPlayer) {
try {
mediaController.setMediaPlayer(this);
mediaController.setAnchorView(findViewById(R.id.main_audio_player));
handler.post(new Runnable() {
public void run() {
mediaController.setEnabled(true);
mediaController.show();
}
});
}
catch (Exception mediaError)
{
Toast error = Toast.makeText(getApplicationContext(),"Media player error!",1000);
error.show();
}
}
这也是我播放声音的功能......
public void PlayAudioFile(String filename){
if(!emptyList){
if(IsPlayed)
{
mediaPlayer.stop();
mediaPlayer.release();
}
Integer fileIndex =0;
if(filename != ""){
fileIndex = myPlaylist.GetIndexByFilename(filename);
}
mediaPlayer = new MediaPlayer();
if(myPlaylist.GetNumberOfItems()>0)
{
try {
audioFile = myPlaylist.GetItemWithPathInPlaylistByPositionId(fileIndex);
audioName = myPlaylist.GetItemInPlaylistByPositionId(fileIndex);
((TextView)findViewById(R.id.now_playing_text)).setText(audioName);
mediaPlayer.setOnPreparedListener(this);
mediaController = new MediaController(this);
}
catch (Exception errorPlayer){
}
try {
mediaPlayer.setDataSource(audioFile);
mediaPlayer.prepare();
mediaPlayer.start();
IsPlayed = true;
} catch (IOException e) {
}
}
}
}
我希望这足以让你给我一些建议:)
答案 0 :(得分:0)
萨拉姆。不要将setOnItemClickListener
用于listView
而是使用Onclick
作为listView
ROW的父布局
像这样:
list_row.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:onClick="playSelectedPodcast" > <!--- this is important-->
<TextView
android:id="@+id/podcast_row_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000"
android:layout_gravity="right|center_vertical"
/>
</LinearLayout>
然后在您的活动中写下此方法
public void playSelectedPodcast(View view){
ViewHolder tag = (ViewHolder) view.getTag();
mMediaController.show(5000);
podcastIndex = tag.position;
playPodcast(tag.position);
}