public void playMusic(){ try { URL cb; //可以在项目里创建一个Source folder包,将音乐文件放到这个包里,再把路径给它 File f = new File(url); //url这里放音乐路径。cb = f.toURL();AudioClip aau = Applet.newAudioClip(cb);aau.play();} catch (MalformedURLException e) { e.printStackTrace(); } }为什么我的代码音乐播放到一半就停了
时间: 2023-06-08 09:07:57 浏览: 216
很抱歉,根据您提供的代码,我无法确定为什么音乐会在播放中停止。可能是由于音乐文件本身的问题或代码中其他方面的问题,如缺少必要的关闭语句或未处理异常。建议您检查代码是否有错误,并尝试使用其他音乐文件进行测试。如果问题仍然存在,请更详细地描述情况,并提供更多相关代码以及任何错误消息或日志,以便更好地了解问题所在。
相关问题
public class MusicControl extends Binder { // 播放音乐 public void playMusic() { Uri uri = Uri.parse("android.resource://" + getPackageName() + "/raw/music"); try { mediaPlayer.reset(); mediaPlayer = MediaPlayer.create(getApplicationContext(), uri); mediaPlayer.start(); mediaPlayer.setLooping(true); } catch (Exception e) { e.printStackTrace(); } }
这段代码是什么意思?
这是一个继承自Binder的类MusicControl,其中包含一个播放音乐的方法playMusic。在该方法中,首先根据资源文件的路径创建一个Uri对象,然后通过MediaPlayer类的create方法创建一个MediaPlayer对象并将该资源文件设置为要播放的音乐文件,最后通过调用MediaPlayer的start方法开始播放音乐,并将其设置为循环播放。如果在创建MediaPlayer对象的过程中出现异常,则会打印异常信息。
public PlayMusic(){ threadPlay = new Thread(this); } public void run() { clip.play(); } public void playMusic(){ threadPlay = new Thread(this); try{ threadPlay.start(); } catch(Exception exp) {} }什么意思
这段代码是一个音乐播放器的实现,其中涉及到多线程的使用。
首先,这段代码定义了一个无参构造函数 `PlayMusic()`。在构造函数中,它创建了一个新的线程对象 `threadPlay`,并将当前对象(PlayMusic 类)作为线程的目标(实现了 Runnable 接口)。
接下来,代码实现了 `run()` 方法,它是 Runnable 接口中定义的方法。在 `run()` 方法中,调用了 `clip.play()` 方法来播放音乐剪辑。这段代码会在新线程中执行。
另外,代码还定义了一个 `playMusic()` 方法。在该方法中,它也创建了一个新的线程对象 `threadPlay`,并尝试通过调用 `start()` 方法启动线程。这样就会执行线程的 `run()` 方法,从而播放音乐。
需要注意的是,在上述代码中可能会抛出异常,但异常被捕获并没有处理。这意味着如果在播放音乐时发生异常,它将被忽略。
总体来说,这段代码的目的是创建一个音乐播放器,并使用多线程来播放音乐剪辑。通过调用 `playMusic()` 方法,可以启动音乐播放。需要确保正确设置了音乐剪辑对象 `clip`,以及适当处理可能发生的异常情况。
阅读全文