WARN / AudioFlinger(33):写阻塞76毫秒,7773延迟写入,螺纹0xb3f0 [英] WARN/AudioFlinger(33): write blocked for 76 msecs, 7773 delayed writes, thread 0xb3f0

查看:1265
本文介绍了WARN / AudioFlinger(33):写阻塞76毫秒,7773延迟写入,螺纹0xb3f0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经创建了一个意向役开始音乐我在后台的应用程序。

这是wirking但我logcat中充斥着消息:

16 09-14:46:30.117:WARN / AudioFlinger(33):写阻塞76毫秒,7773延迟写入,螺纹0xb3f0
没有别的是越来越记录。

下面是我的IntentService:

 进口android.app.IntentService;
进口android.content.Intent;
进口android.media.MediaPlayer;
进口android.media.MediaPlayer.OnErrorListener;
进口android.widget.Toast;公共类MusicService扩展IntentService {    MediaPlayer的MPLAYER;
    私人OnErrorListener mErrorListener;    公共MusicService(){
        超级(MusicService);
        // TODO自动生成构造函数存根
    }    @覆盖
    保护无效onHandleIntent(意向意图){
        // TODO自动生成方法存根
          //通常我们会在这里做了一些工作,比如要下载的文件。
    }    ////////////////////////////////////////////////// /////////    @覆盖
    公众诠释onStartCommand(意向意图,诠释旗帜,INT startId)    {
        Toast.makeText(这一点,服务启动,Toast.LENGTH_SHORT).show();
        mPlayer.setLooping(真);
        mPlayer.start();        返回super.onStartCommand(意向,旗帜,startId);
    }    @覆盖    公共无效的onCreate()    {
        super.onCreate();
      //尝试{
            MPLAYER = MediaPlayer.create(这一点,R.raw.jingle);
        //}赶上(抛出:IllegalArgumentException五){
            //e.printStackTrace();
        //}赶上(IllegalStateException异常五){
            //e.printStackTrace();
        //}        如果(MPLAYER!= NULL)
        {
            mPlayer.setLooping(真); //设置循环
            mPlayer.setVolume(100,100);
        }
    mPlayer.setOnErrorListener(新OnErrorListener(){        公共布尔的onError(MediaPlayer的熔点,诠释了什么,整型附加){
            // TODO自动生成方法存根
            onPlayError();
            返回true;
        }    });
    }    私人无效onPlayError(){
        Toast.makeText(这一点,音乐播放器失败,Toast.LENGTH_SHORT).show();
        如果(MPLAYER!= NULL)
        {
            尝试{
                mPlayer.stop();
                mPlayer.release();
            } {最后
                MPLAYER = NULL;
            }
        }
    }


解决方案

需要

权限。在AndroidManifest.xml中把这些:

 <采用-SDK安卓的minSdkVersion =8/>
<使用许可权的android:NAME =android.permission.WRITE_EXTERNAL_STORAG​​E/>
<使用许可权的android:NAME =android.permission.MOUNT_UNMOUNT_FILESYSTEMS/>

我测试了它在Android模拟器2.2,所以我的minSdkVersion是8。

I have created an intent servie to start music for my app in the background.

it is wirking but my logcat is flooded with the messages:

09-14 16:46:30.117: WARN/AudioFlinger(33): write blocked for 76 msecs, 7773 delayed writes, thread 0xb3f0 and nothing else is getting Logged.

Here is my IntentService:

import android.app.IntentService;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnErrorListener;
import android.widget.Toast;

public class MusicService extends IntentService {

    MediaPlayer mPlayer;
    private OnErrorListener mErrorListener;

    public MusicService() {
        super("MusicService");
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        // TODO Auto-generated method stub
          // Normally we would do some work here, like download a file.


    }   

    ///////////////////////////////////////////////////////////

    @Override
    public int onStartCommand (Intent intent, int flags, int startId)

    {
        Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show();
        mPlayer.setLooping(true);
        mPlayer.start();

        return super.onStartCommand(intent,flags,startId);


    }

    @Override

    public void onCreate ()

    {
        super.onCreate();
      //  try{
            mPlayer = MediaPlayer.create(this, R.raw.jingle);
        //}catch (IllegalArgumentException e) {
            //e.printStackTrace();
        //}catch (IllegalStateException e ) {
            //e.printStackTrace();
        //}

        if(mPlayer!= null)
        {
            mPlayer.setLooping(true); // Set looping
            mPlayer.setVolume(100,100);
        }


    mPlayer.setOnErrorListener(new OnErrorListener() {

        public boolean onError(MediaPlayer mp, int what, int extra) {
            // TODO Auto-generated method stub
            onPlayError();
            return true;
        }

    });


    }

    private void onPlayError() {
        Toast.makeText(this, "music player failed", Toast.LENGTH_SHORT).show(); 
        if(mPlayer != null)
        {
            try{
                mPlayer.stop();
                mPlayer.release();
            }finally {
                mPlayer = null;
            }
        }
    }

解决方案

Permissions are needed. Put these in AndroidManifest.xml:

<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

I tested it under android emulator 2.2 so my minSdkVersion is 8.

这篇关于WARN / AudioFlinger(33):写阻塞76毫秒,7773延迟写入,螺纹0xb3f0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆