我有一个问题,偶尔MediaPlayer.create方法将返回null,即使音频文件肯定存在.实际上,如果我将调用create创建为while循环,最终将成功创建媒体播放器.这似乎只发生在我的手机上(HTC Hero运行2.1)而且从未出现在模拟器中.
这只是手机的问题吗?或者我应该以不同的方式播放这些音频文件?
请注意,我想动态加载它们,这是因为我正在调用getIndentifer.如果有更好的方式来动态播放这些,请告诉我.
public void playAudio(String audioFile){
//instance variable of type MediaPlayer
_player = null;
while(_player == null){
_player = MediaPlayer.create(_context, getResources().getIdentifier(audioFile, "raw", _context.getPackageName()));
}
_player.start();
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
可能重复:
图像比较算法
所以基本上我需要编写一个程序来检查2个图像是否相同.考虑以下2张图片:
http://i221.photobucket.com/albums/dd298/ramdeen32/starry_night.jpg
http://i221.photobucket.com/albums/dd298/ramdeen32/starry_night2.jpg
那么它们都是相同的图像,但我如何检查这些图像是否相同.我仅限于媒体功能.我现在能想到的只是宽度高度缩放并比较每个像素的RGB但是颜色不同吗?
我完全迷失在这一个,任何帮助表示赞赏.
*注意这必须在python中并使用(媒体库)
我正在研究一个企业项目,创建一个可以使用多年的系统.我最近遇到了css中的"投影"媒体类型,我想象它可能给用户带来的好处,演示等等,但我不知道这是否只是在我的想象中,或者是否存在这是一个真正的世界优势.到目前为止,我所知道的是,某些版本的Opera在全屏模式下使用媒体类型.
W3C媒体类型条目:http://www.w3.org/TR/CSS2/media.html
在投影机上使用时,是否有任何浏览器检测到投影介质类型?
这甚至可能吗?我有一种预感,就浏览器而言,投影仪只是一个屏幕,所以没有检测.如果我错了,那就太好了.
投影媒体类型是否有任何成功?
基本上,我想要做的是让用户自己创建folder,然后转到activity包含a button来启动它camera.
从那里我希望能够启动camera并将camera图像保存到新创建的文件夹中.
我在将camera图像保存到新创建的文件夹的最后一部分时遇到了问题.
这是我的Code:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
EditText text = (EditText)findViewById(R.id.editText1);
EditText text2 = (EditText)findViewById(R.id.editText2);
@Override
public void onClick(View v) {
final String name = text.getText().toString();
final String placeName = text2.getText().toString();
String place = placeName.substring(0,3);
String direct = name + place ;
File folder = new File("/sdcard/CameraTest/" + direct + "/");
folder.mkdirs(); …Run Code Online (Sandbox Code Playgroud) 我一直在为我的网站添加掌上电脑的 CSS支持,但一直没能找到一个好的测试工具.
我尝试使用Firefox的webdeveloper插件,但它对我不起作用.也许这是因为我的所有CSS都在html中,而不是一个单独的css文件.
除了外出和购买手持设备外,还有其他可用的测试工具吗?
我的应用程序允许用户将图像保存到SD卡.但是我不知道如何卸下并重新安装SD卡之前如何让它出现在画廊中.我已经用Google搜索了几天这个问题,但我不确定如何让它自动出现.我找到了 这个链接,但我不确定如何使用该类.这是我用来保存文件.在try catch块的底部是我想要扫描sd卡以获取新媒体的地方.
FileOutputStream outStream = null;
File file = new File(dirPath, fileName);
try {
outStream = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
outStream.flush();
outStream.close();
} catch {
...
}
Run Code Online (Sandbox Code Playgroud)
如果有人能指出我正确的方向,我将不胜感激.
我的Android应用程序在SurfaceHolder上使用MediaRecorder来显示相机捕获的实时预览.每次用户按下应用程序上的REC按钮,应用程序就会开始记录.每次MediaRecorder的状态切换到'start'时,Android会自动(?)发出蜂鸣声.这种哔哔声听起来与手机不同,这让我觉得这种哔哔声本身就与MediaRecorder的状态变化有关.如果手机的音量设置为静音,则不会发出蜂鸣声.
我谷歌并做了一些研究,但我找不到一种方法来关闭这个哔哔声.可能吗?如果是这样,怎么样?
该应用程序已经过测试:Nexus One 2.3.4,Desire HD 2.3.3
一个人可以使用
String MediaMetadataRetriver.extractMetadata(int key);
Run Code Online (Sandbox Code Playgroud)
同
key = MediaMetadataRetriver.METADATA_KEY_DURATION
Run Code Online (Sandbox Code Playgroud)
提取媒体持续时间.
此函数返回一个String,但没有关于此字符串表示的格式或度量单位的文档.我假设它是一个以ms为单位的整数,但MediaMetadataRetriever的其余部分使用了我们.
那么持续时间的单位是多少?你认为缺乏规范是故意还是错误?
拜托,有没有简单的方法来通过的Node.js和可能SOCKET.IO从服务器流式传输(广播)的媒体文件(OGG,MP3,SPX ..)客户端(浏览器)?
我必须在服务器端录制音频输入,然后才能为许多客户端实时播放.我一直在搞乱binary.js或socket.io流,但是无法正确使用它.
我试图用speex,vorbis或lame对音频输入进行编码,然后通过FS将其加载到客户端,但我还没有成功.或者我必须捕获PCM然后在浏览器中解码它?
对此有任何建议,我发现没有任何帮助过我.
非常感谢任何提示,链接和想法.
在活动媒体流(语音)navigator.mediaDevices.getUserMedia连接到内部麦克风时工作正常,只要我切换到蓝牙设备并重新运行相同的 API 以获取最新的媒体流,我就会收到错误消息"NotReadableError: Concurrent mic process limit."
我浏览了许多论坛,正如许多人所建议的那样,当多个选项卡尝试访问麦克风或/和相机时,此错误通常发生在 Firefox、Mac OS 中。
我确保在 Firefox 浏览器中只打开了一个选项卡,仍然看到相同的错误。
任何有关这方面的线索都将不胜感激。
下面是代码片段
constraints = {
"audio": {"deviceId": deviceId },
"video": false
}
let temp;
navigator.mediaDevices.getUserMedia(constraints).then(function(stream){
temp = stream;
}).catch(function(err) {
console.log(err.name + ": " + err.message);
});
Run Code Online (Sandbox Code Playgroud)
返回以下错误信息
NotReadableError: Concurrent mic process limit.
Run Code Online (Sandbox Code Playgroud)
注意:在 Chrome 和 Edge 中工作正常
浏览器:Firefox 70.0.1(64 位)
操作系统:MacOS Mojave