Android MediaPlayer在自定义音频流媒体应用程序中工作正常吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (25)

检查下这段代码:

    private MediaPlayer createMediaPlayer(File mediaFile)
            throws IOException {
        MediaPlayer mPlayer = new MediaPlayer();
        //example of mediaFile =/data/data/package/cache/playingMedia0.dat
        FileInputStream fis = new FileInputStream(mediaFile);
        mPlayer.setDataSource(fis.getFD());
        mPlayer.prepare();
        return mPlayer;
    }

当前状态:

1-从Android 1.6到2.1可以正常工作,但不是像Android 2.2这样的高级版本。

2-“mPlayer.setDataSource(fis.getFD())”是抛出错误的行。

3-错误是“无法创建媒体播放器”

我的目标是让Android 2.1及更高版本的代码更安全。

LogCat跟踪:

Unable to to create media player
Error copying buffered conent.
java.lang.NullPointerException
com.ms.iradio.StreamingMediaPlayer.startMediaPlayer(StreamingMediaPlayer.java:251)
com.ms.iradio.StreamingMediaPlayer.access$2(StreamingMediaPlayer.java:221)
com.ms.iradio.StreamingMediaPlayer$2.run(StreamingMediaPlayer.java:204)
android.os.Handler.handleCallback(Handler.java:587)
android.os.Handler.dispatchMessage(Handler.java:92)
android.os.Looper.loop(Looper.java:123)
android.app.ActivityThread.main(ActivityThread.java:3683)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:507)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
dalvik.system.NativeStart.main(Native Method)
提问于
用户回答回答于

StreamingMediaPlayer课程使用双缓冲技术来解决Android 1.2以前版本中的限制。Android OS的所有产品版本都包含支持流媒体的MediaPlayer(1)。我会建议这样做,而不是使用这种双缓冲技术来解决问题。

Android OS 2.2用FrightCast播放器取代了旧的媒体播放器代码,在这种情况下可能采取不同的行动。

你的堆栈跟踪中的行号不会映射到您链接的文件,因此我认为你实际使用的版本不同。我会猜测,这NullPointerException是由报道,MediaPlayer但既不FileInputStream是返回FileDescriptor可以null

用户回答回答于

问题是内容类型“音频/ aacp”流不直接支持。有些解码库可以用来播放“aacp”,请参阅下面的解决方案:

Freeware Advanced Audio(AAC)解码器 。

扫码关注云+社区