java - JMF音乐播放器

标签 java file url mp3 jmf

我正在尝试通过 JMF 库为学校项目创建一个简单的 mp3 播放器,但我总是遇到此错误。文件路径正确。

java.lang.NullPointerException
        at javax.media.MediaLocator.<init>(MediaLocator.java:37)
        at Mp3Player.run(Mp3Player.java:40)

这是我的代码:

import java.net.URL;
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.EndOfMediaEvent;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.Player;


public class Mp3Player extends Thread {

   private String filename;
   Player player;

   public Mp3Player(String mp3Filename) {
      this.filename = mp3Filename;
   }

   public void run() {
      try {
         URL url = this.getClass().getClassLoader().getResource(filename);
         MediaLocator locator = new MediaLocator(url);
         player = Manager.createPlayer(locator);
         player.addControllerListener(new ControllerListener() {
            public void controllerUpdate(ControllerEvent event) {
               if (event instanceof EndOfMediaEvent) {
                  player.stop();
                  player.close();
               }
            }
         });
         player.realize();
         player.start();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }

   public static void main(String[] args) {
      new Mp3Player("C:\\Users\\Aziz\\Music\\music\\a.mp3").start();
   }
}

最佳答案

这个字符串 URL url = this.getClass().getClassLoader().getResource(filename); 看起来很可疑。 尝试在 java.io.* 中使用类 File,该类具有方法 toURL():

File f = new File ( filename );
MediaLocator locator = new MediaLocator ( f.toURL() );
player = Manager.createPlayer ( locator );

关于java - JMF音乐播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16609395/

相关文章:

java - 将代码迁移到 AndroidX 后 build.gradle 中的 Selenium 失败

Java 矩形旋转问题

java - 如何避免 Android 中的 OutOfMemoryError

javascript - 在 jquery 中获取输入类型文件的 event.result

java - java中如何解析这个URL

java - javafx2中的可编辑表

python - 在文件中搜索并用单词替换数字

c - 使用单个文件指针打开多个文件

html - 如何使用新 URL 刷新部分内容?

android - Twitter OAuth 在 Android 中是如何工作的?