android-MediaPlayer无法正确播放音频

android-MediaPlayer无法正确播放音频,第1张

概述我正在尝试在WebView中播放音频.该音频由URL提供.我通过覆盖url加载来解决这个问题.它开始播放音频,但是很多时候MediaPlayer都停止了.这种情况发生的时间大约为30%,并且此音频文件的时间不得超过30秒.我尝试了MP3,OGG和WAV,并且它们中的任何一个都发生了.我也尝试过但先下载文件

我正在尝试在WebVIEw中播放音频.该音频由URL提供.我通过覆盖url加载来解决这个问题.它开始播放音频,但是很多时候Media Player都停止了.这种情况发生的时间大约为30%,并且此音频文件的时间不得超过30秒.

我尝试了MP3,OGG和WAV,并且它们中的任何一个都发生了.

我也尝试过但先下载文件然后播放它,而不是流式传输它,但也没有用.

这是一段代码…向您展示其工作方式:

public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw, String url) {    if (url.endsWith(".ogg")){        AudioLoader audioLoader = new AudioLoader(url);        audioLoader.start();        return true;    }    else if (url.endsWith(".wav")){        Uri tempPath = Uri.parse(url);        MediaPlayer player = MediaPlayer.create(interfazWeb, tempPath);        if (player != null){            player.start();        } else {            Log.e(TAG, "No se puede abrir el audio:" + url);        }        return true;    }    else if (url.endsWith(".mp3")){        AudioLoader audioLoader = new AudioLoader(url);        audioLoader.start();        return true;    }else{        return super.shouldOverrIDeUrlLoading(vIEw, url);    }}

我已经检查了由“ AudioLoader”保存的音频文件,这很好. WAV案例正在使用我的第一次尝试,并通过流媒体播放它.

还尝试了SoundPool和AsyncPlayer …没有任何效果!

所以…到目前为止,我认为这不是通信,编解码器或缓冲区问题.我唯一的提示是这些日志条目,使用所有格式和所有方法,每次出现问题时都会重复这些日志条目:

12-31 09:41:49.284: WARN/audioflinger(59): write blocked for 160 msecs, 20 delayed writes, thread 0xd7a812-31 09:41:49.554: WARN/TimedEventQueue(59): Event 6 was not found in the queue, already cancelled?

请问有人有线索吗?或者我只是面临一个错误/缺失功能.

祝您2011年愉快,特别是如果您能够帮助我:P

问候,曼努埃尔.

解决方法:

您正在以本地方式创建audioLoader和/或MediaPlayer对象(这些对象是功能shouldOverrIDeUrlLoading的本地对象).因此,一旦退出该功能,当垃圾收集器尝试收集所有未引用的对象时,它将破坏您的对象,然后声音将停止.

尝试将AudioLoader和MediaPlayer对象声明为全局对象:

private AudioLoader audioLoader; private MediaPlayer player; public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw, String url) {        if (url.endsWith(".ogg")){            audioLoader = new AudioLoader(url);            audioLoader.start();            return true;        }        else if (url.endsWith(".wav")){            Uri tempPath = Uri.parse(url);            player = MediaPlayer.create(interfazWeb, tempPath);            if (player != null){                player.start();            } else {                Log.e(TAG, "No se puede abrir el audio:" + url);            }            return true;        }        else if (url.endsWith(".mp3")){            audioLoader = new AudioLoader(url);            audioLoader.start();            return true;        }else{            return super.shouldOverrIDeUrlLoading(vIEw, url);        } }
总结

以上是内存溢出为你收集整理的android-MediaPlayer无法正确播放音频全部内容,希望文章能够帮你解决android-MediaPlayer无法正确播放音频所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1068909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存