[英]Using Intents to play audio files
I am trying to create a media player that only plays .mp3 files. 我正在尝试创建仅播放.mp3文件的媒体播放器。 I have the list created and showing on my app but I cant get it to play the song.
我已经创建了列表并显示在我的应用程序上,但无法播放歌曲。 I was advised to use an intent but I dont know how to do it.
建议我使用意图,但我不知道该怎么做。
Here is the code; 这是代码;
ListView list;
Cursor cursor;
int columnIndex;
int count;
private ArrayAdapter arrayAdapter;
private Button dropbox;
public MainActivity()
{
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dropbox = (Button) findViewById(R.id.dropbox);
list = (ListView) findViewById(android.R.id.list);
dropbox.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.dropbox.com"));
startActivity(i);
}
});
String[] displayMusic = {MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DISPLAY_NAME};
cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, displayMusic, null, null, null);
//0 is the id for a mp3 file on the sd card
//1 is the file name of the mp3 file on the sd card
final ArrayList<String> listOfMp3s = new ArrayList<String>();
final ArrayList<String> listOfIds = new ArrayList<String>();
while (cursor.moveToNext())
{
if(cursor.getString(1).endsWith("mp3"))
{
listOfMp3s.add(cursor.getString(1));
listOfIds.add(cursor.getString(0));
}
}
arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, listOfMp3s);
list.setAdapter(arrayAdapter);
list.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
Intent songPageIntent = new Intent(getApplicationContext(), SongPage.class);
startActivity(songPageIntent);
}
});
}
Try like this 这样尝试
String name = "http://dl.dropboxusercontent.com/sh/t0in0j8jgsr9wft/abc.mp2";
Uri a = Uri.parse(name);
Intent viewMediaIntent = new Intent();
viewMediaIntent.setAction(android.content.Intent.ACTION_VIEW);
viewMediaIntent.setDataAndType(a, "audio/*");
viewMediaIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(viewMediaIntent);
Try this: 尝试这个:
public void audioPlayer(String path, String fileName){
//set up MediaPlayer
MediaPlayer mp = new MediaPlayer();
try {
mp.setDataSource(path+"/"+fileName);
mp.prepare();
mp.start();
} catch (Exception e) {
e.printStackTrace();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.