使用javafxports调用android本机Media Player

时间:2016-10-15 10:06:10

标签: android audio native gluon javafxports

Trying to implement this example

我试图实现您在本文中提供的相同解决方案,但当我尝试运行我的应用程序时,我最终得到了一个 NullPointerException 我实现了服务。玩();在我的项目中,我有以下设置:

在源包[Java] 下 - > com.myprojfx8 - > NativeAudioService.java接口

package com.myprojfx8;

public interface NativeAudioService 
{   void play();
    void pause();
    void resume();
    void stop(); 
}

以及包含service.play()代码行的主java文件。

    try 
    {   service = (NativeAudioService)Class.forName("com.myprojfx8.NativeAndroidAudio").newInstance();
    } 
    catch (ClassNotFoundException | InstantiationException | IllegalAccessException ex) 
    {   System.out.println("Error " + ex);
    }

    service.play(); // this is line 1053.

在Android / Java包下 - > com.myprojfx8 - > NativeAndroidAudio.java

public NativeAndroidAudio(){}

@Override public void play() 
{   currentPosition = 0;
    try 
    {   if (mp != null) 
        {   stop();
        }
        mp = new MediaPlayer();
        AssetFileDescriptor afd = FXActivity.getInstance().getAssets().openFd("ThemeMusic.mp3");

        mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
        mp.setAudioStreamType(AudioManager.STREAM_RING);
        mp.setOnCompletionListener(mp -> stop());
        mp.prepare();
        mp.start();
    } 
    catch (IOException e) 
    {   System.out.println("Error playing audio resource " + e);
    }
}

在MyProjFX8下 - > src - > android - > assets文件夹我有ThemeMusic.mp3文件。

顺便说一句,我使用Netbeans 8.1作为我的IDE。

知道我做错了什么我相信它与try语句中的服务没有正确链接有关但我不知道我没有实现什么?

错误消息是:

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
    at com.myprojfx8.MyProjFX8.startGameAction(MyProjFX8.java:1053)

0 个答案:

没有答案