我有一个带有详细活动的Android应用程序,该详细活动几乎没有带有底层片段的选项卡 . 当我点击我正在播放点击的音频文件的每一行时,其中一个片段是带有音频文件名称的普通列表 .
一切正常,但我希望有一些方法可以看到播放的进度和停止播放的能力,我试图添加MediaController,但即使我正在创建它没有错误,屏幕上也看不到媒体控制 .
我不确定我是否以正确的方式做任何帮助你都会受到赞赏 .
非常感谢,拉德克
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
try {
if(convertView == null){
convertView = layoutInflater.inflate(R.layout.audio_row,parent,false);
}
TextView textView = (TextView) convertView.findViewById(R.id.rowText);
textView.setText("" + jsonAudio.getJSONObject(position).getString("description"));
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
String audioFileName = jsonAudio.getJSONObject(position).getString("file");
Toast.makeText(context, "audio item clicked: " + audioFileName, Toast.LENGTH_SHORT).show();
AssetFileDescriptor descriptor = context.getAssets().openFd(audioFileName);
long start = descriptor.getStartOffset();
long end = descriptor.getLength();
MediaPlayer mediaPlayer=new MediaPlayer();
mediaPlayer.setDataSource(descriptor.getFileDescriptor(), start, end);
mediaPlayer.prepare();
// not doing really anything
MediaController mediaController = new MediaController(context);
mediaController.setAnchorView(v);
mediaPlayer.start();
} catch (Exception e) {
e.printStackTrace();
}
}
});
2 回答
请查看以下代码以获取您的参考
在你的代码中你传递了MediaController中的TextView,需要传递SurfaceView而不是TextView,你需要在MediaController中设置MediaPlayer
JAVA文件 .
XML文件 -
我不得不调整Patrick的解决方案,从资源文件夹中播放文件,但它工作得很好,这里是重新格式化的java文件,如果有人需要它,可以轻松剪切和粘贴 .
}