利用weex-android的扩展模块module 做的一个播放背景音乐的小功能

项目需要一个播放背景音乐的功能,网上找了很多都没有一个详细的流程。这里就自己写了一个,仅供参考

首先创建WXEventModule.java 文件,然后在WXApplication.java中注册该模块
具体的创建可以参考 官方文档

public class WXApplication extends Application {

  @Override
  public void onCreate() {
    super.onCreate();
    WXSDKEngine.addCustomOptions("appName", "WXSample");
    WXSDKEngine.addCustomOptions("appGroup", "WXApp");
    WXSDKEngine.initialize(this,
        new InitConfig.Builder().setImgAdapter(new ImageAdapter()).build()
    );
    try {
    //注册扩展模块
      WXSDKEngine.registerModule("event", WXEventModule.class);
    } catch (WXException e) {
      e.printStackTrace();
    }
    AppConfig.init(this);
    WeexPluginContainer.loadAll(this);
  }

}

然后在WXEventModule中增加播放背景音乐的方法

 /**
   *  播放beijing 音乐
   * @param
   */
  @JSMethod(uiThread = false)
  public void runBGSound(String type)
  {
    mediaName = type;
    //创建一个用于播放背景音乐的线程
    thread=new Thread(new Runnable(){
      @Override
      public void run() {
        playBGSound();//播放背景音乐
      }
    });
    thread.start();//开启线程

  }

  private void playBGSound() {
    if(mp!=null){
      mp.release();//释放资源
    }
    Context context = mWXSDKInstance.getContext();
    if(mediaName.equals("success"))
    {
        //R为android的资源目录 res
      mp= MediaPlayer.create(context, R.raw.success);
    }
    else if (mediaName.equals("error"))
    {
      mp= MediaPlayer.create(context, R.raw.error);
    }


    mp.start();


  }

在vue中使用该模板

引入扩展模块 const eventModule = weex.requireModule('event')

播放背景音乐 eventModule.runBGSound('success')

原文地址

载入中...