android - 制作 Unity Android 原生媒体播放器插件
问题描述
我正在为统一制作一个原生 android 媒体播放器插件,一切正常,插件加载正确,参数正确传递给插件,即使播放器启动,但似乎什么都没有播放,没有声音出来。源代码是:
package com.bluedreamcatcher.nativemediaplayerplugin;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.AsyncTask;
import android.util.Log;
import java.io.IOException;
public class NativeMediaPlayer {
public MediaPlayer mediaPlayer;
public void StreamMedia(String URL) {
Log.d("Unity",URL);
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(URL);
mediaPlayer.prepareAsync();
try {
mediaPlayer.start();
}catch (Exception ex){
Log.d("Unity",ex.getMessage());
}
if(mediaPlayer.isPlaying()){
Log.d("Unity","playing");
}
} catch (Exception eX) {
String error;
error = eX.toString();
Log.d("Unity",error);
}
}
}
解决方案
好吧,经过一些修改,我改变了我的代码,现在它作为一个基本的统一 android 原生媒体播放器插件工作。这是代码:
package com.bluedreamcatcher.nativemediaplayerplugin;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.util.Log;
public class NativeMediaPlayer {
public MediaPlayer mediaPlayer;
public void StreamMedia(String URL) {
Log.d("Unity",URL);
mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(URL);
mediaPlayer.prepareAsync();
} catch (Exception eX) {
String error;
error = eX.toString();
Log.d("Unity",error);
}
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
}
}
推荐阅读
- arrays - 用数组的每个元素填充用户窗体中的 ListBox
- arrays - 如何访问哈希中的数组?
- typescript - Typescript jest 全局变量示例
- javascript - 将数组传递给与 .slice 和 .push 一起使用的函数
- c++ - 如何在 c++ qt 中为不同类中的元素设置所需的布局?
- gitlab-ci - Mongo-express | 找到包 mongodb-query-parser 的补丁文件
- highcharts - Highcharts:如何删除选定的注释(动态创建的)?
- swift - 如何正确中止请求,以便之后设置 CORS 标头?
- c# - 使用 WSDL 在 C# 中通过 SOAP 发送 XML 信息
- c++ - 改进的 Perlin Noise 3D,奇怪的行为 0.5000 出现在整个部分