【问题标题】:MediaPlayer thinks aac* audio file is a video file?MediaPlayer 认为 aac* 音频文件是视频文件?
【发布时间】:2012-08-28 09:15:56
【问题描述】:

代码运行良好,但我会得到这个错误日志

错误日志:

08-28 08:44:24.281: E/MediaPlayer(32454): mOnVideoSizeChangedListener is null. Failed to send MEDIA_SET_VIDEO_SIZE message.

我尝试将音频文件转换为不同的格式设置听众等等...... 我真的需要这个帮助。她是整个 MediaPlayer 日志:

日志:

08-28 08:44:24.121: V/MediaPlayer-JNI(32454): native_setup
08-28 08:44:24.131: V/MediaPlayer(32454): constructor
08-28 08:44:24.146: D/dalvikvm(32454): GC_CONCURRENT freed 193K, 4% free 9397K/9735K, paused 2ms+2ms
08-28 08:44:24.146: V/MediaPlayer-JNI(32454): native_finalize
08-28 08:44:24.146: V/MediaPlayer-JNI(32454): release
08-28 08:44:24.146: V/MediaPlayer-JNI(32454): native_finalize
08-28 08:44:24.146: V/MediaPlayer-JNI(32454): release
08-28 08:44:24.186: V/MediaPlayer(32454): setListener
08-28 08:44:24.186: V/MediaPlayer-JNI(32454): setDataSourceFD: fd 47
08-28 08:44:24.186: V/MediaPlayer(32454): setDataSource(47, 740, 14519)
08-28 08:44:24.216: V/MediaPlayer(32454): setVideoSurfaceTexture
08-28 08:44:24.216: V/MediaPlayer(32454): prepare
08-28 08:44:24.246: V/MediaPlayer(32454): message received msg=5, ext1=0, ext2=0
08-28 08:44:24.246: V/MediaPlayer(32454): New video size 0 x 0
08-28 08:44:24.246: V/MediaPlayer(32454): callback application
08-28 08:44:24.246: V/MediaPlayer(32454): back from callback
08-28 08:44:24.246: V/MediaPlayer(32454): message received msg=1, ext1=0, ext2=0
08-28 08:44:24.246: V/MediaPlayer(32454): prepared
08-28 08:44:24.246: V/MediaPlayer(32454): signal application thread
08-28 08:44:24.246: V/MediaPlayer(32454): callback application
08-28 08:44:24.246: V/MediaPlayer(32454): back from callback
08-28 08:44:24.246: V/MediaPlayer(32454): prepare complete - status=0
08-28 08:44:24.246: V/MediaPlayer-JNI(32454): start
08-28 08:44:24.246: V/MediaPlayer(32454): start
08-28 08:44:24.281: E/MediaPlayer(32454): mOnVideoSizeChangedListener is null. Failed to send MEDIA_SET_VIDEO_SIZE message.
08-28 08:44:24.281: I/MediaPlayer(32454): Don't send intent. msg.arg1 = 0, msg.arg2 = 0
08-28 08:44:24.281: E/MediaPlayer(32454): mOnPreparedListener is null. Failed to send MEDIA_PREPARED message.
08-28 08:44:25.661: V/MediaPlayer(32454): message received msg=2, ext1=0, ext2=0
08-28 08:44:25.661: V/MediaPlayer(32454): playback complete
08-28 08:44:25.661: V/MediaPlayer(32454): callback application
08-28 08:44:25.661: V/MediaPlayer(32454): back from callback
08-28 08:44:25.666: E/MediaPlayer(32454): mOnCompletionListener is null. Failed to send MEDIA_PLAYBACK_COMPLETE message.
08-28 08:49:24.211: V/MediaPlayer-JNI(32454): release
08-28 08:49:24.211: V/MediaPlayer(32454): setListener
08-28 08:49:24.211: V/MediaPlayer(32454): disconnect
08-28 08:49:24.226: V/MediaPlayer(32454): destructor
08-28 08:49:24.226: V/MediaPlayer(32454): disconnect

还有 Java 代码。

Java 代码:

 public class MainActivity extends Activity {
    MediaPlayer TestingAudio;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Initialization();
        DoStuff();
    }

    private void Initialization() {
        setContentView(R.layout.activity_main);
        TestingAudio = MediaPlayer.create(MainActivity.this, R.raw.samlagnin);
    }

    private void DoStuff() {
        TestingAudio.start();
    }

    @Override
    protected void onPause() {
        super.onPause();
        TestingAudio.release();
        TestingAudio = null;
    }

【问题讨论】:

    标签: android media-player


    【解决方案1】:

    我设法通过附加一些空的侦听器来消除错误。请参阅http://developer.android.com/reference/android/media/MediaPlayer.html 处的 setOnPreparedListener() 和类似方法

    【讨论】:

    • 我有一个类似的问题,但是是视频,而不是音频(但是是同一个媒体播放器)。我相信这很重要,而不仅仅是无害的错误日志消息。我认为这是非常有害的(如果你愿意,可以证明它)。我很想取消回调——但是——我无法在没有反射的情况下找到MediaPlayer。你是如何找到 MP 的(当你完成测试时,你大概在上面附加了你的优秀代码)? stackoverflow.com/questions/12418014/…
    【解决方案2】:

    你是说aac吗?但是MediaPlayer不支持aac。

    【讨论】:

    • 我的意思是 aac 对不起 :P 但他们说她developer.android.com/guide/appendix/media-formats.html 我很困惑所以我应该使用什么格式?
    • @Gudrodur 没关系。 :) 你是用 Android3.1+ 运行测试代码的吗?
    • 也许你可以给我aac文件,然后我可以在我的机器上测试它。
    • 我试过你的 aac 文件。如果我在手机(Android4.0)上安装测试apk,没有找到错误日志,我可以听到声音。但是,如果我在手机模拟器(Android4.1)上安装测试 apk,则会收到错误 java.io.IOException: setDataSourceFD failed。我还尝试了另一个 mp3 文件在我的模拟器上进行测试,结果很好。所以当你看到这些错误日志时,我客人可能这个 aac 文件有问题(不完整?)。
    • 感谢您的帮助。我将尝试制作一个新的录音,看看是否不再出现这些错误。
    【解决方案3】:

    我是否理解正确,您的应用可以正常工作,而您只是想知道记录的错误?我认为 MediaPlayer 只是尝试调用所有定义的回调方法,而不管具体的文件/编解码器。正如您在日志文件中看到的,还有其他几个为空的回调,例如mOnCompletionListenermOnPreparedListener。 所以我不会太担心。

    【讨论】:

    • 是的,我只是想知道记录的错误。我也许不应该担心它。它只是让我烦恼,我花了很多时间试图找出方法哈哈
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多