J2me Player,一个接一个地播放 MP3 文件
Posted
技术标签:
【中文标题】J2me Player,一个接一个地播放 MP3 文件【英文标题】:J2me Player, Play MP3 Files One After The Other 【发布时间】:2011-09-19 19:20:53 【问题描述】:我无法一个接一个地播放 MP3 文件,当一个文件播放完另一个文件需要开始播放时。我只能开始播放 1 个文件,当我输入代码来启动下一个文件时,它什么也不做。由于某些原因,我不能在文件期间使用thread.sleep()
。有没有其他方法可以做到这一点?
//this is the basic code..
playq(String fname)
pl = Manager.createPlayer(stream,"audio/mpeg");
pl.realize();
pl.prefetch();
pl.start();
// what should i use here?? pls i don't want to use thread.sleep..
playagain(fname);
void playagain(String fname)
try
pl.stop();
pl.deallocate();
pl.close();
catch (Exception ex)
//change file name and stream and..
playq(mp3f);
【问题讨论】:
【参考方案1】:您的代码应该不尝试从 catch
块播放代码 - 一方面,只有在出现异常时才会调用它生成(您通常也不应该笼统地捕捉Exception
- 使用更具体的东西)。
你确定你不能使用Thread.sleep()
吗?当然,无论如何您都不会真的想要(例如,如果用户可以暂停剪辑...)。
相反,请考虑使用PlayerListener
接口,并监听END_OF_MEDIA
事件。
一个非常基本的(例如,这没有经过测试,还需要更多的工作)示例:
public class PlayerRunner implements PlayerListener
private final String[] songFiles;
private int songIndex = 0;
public PlayerRunner(String[] songs)
this.songFiles = songs;
public void start()
playerUpdate(null, null, null);
// This method is required by the PlayerListener interface
public void playerUpdate(Player player, String event, Object eventData)
// The first time through all parameters will be blank/null...
boolean nextSong = (event == null);
if (event == PlayerListener.END_OF_MEDIA)
player.stop();
player.dallocate();
player.close();
nextSong = index < songIndex.length;
if (nextSong)
String fileName = songFiles[index++];
if (fileName != null)
Player pl = Manager.createPlayer(fileName, "audio/mpeg");
pl.addPlayerListener(this);
pl.realize();
pl.prefetch();
pl.start();
请注意,我没有完全正确地执行此操作 - 例如,我没有进行异常处理。另外,在不了解您的情况的情况下,我不知道还有什么需要担心的。这应该只是一个简单的答案,让您开始了解您应该去哪里。
(另外,我从未使用过 JME 的媒体播放器,所以我不知道关于 GC 的任何警告等)。
【讨论】:
你是如何在 Java ME 中使用List<String>
的?
winces 我说我从来没有搞砸过 Java ME,这说明了。更改为使用数组列表。以上是关于J2me Player,一个接一个地播放 MP3 文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 AVAudioPlayer 播放多个声音(一个接一个)
Windows Phone 8 可以播放 WAV 文件但不能播放 MP3
C++:如何在visual studio控制台应用程序中使用windows media player播放和暂停mp3文件?