Articles of 音频

如何获取已安装的媒体播放器列表

在我的应用程序中,我有一个菜单项,我想打开用户首选的媒体播放器,只对音频感兴趣。 理想情况下,当用户第一次选择此项时,如果他们只安装了一个,则会选择手机上唯一的媒体播放器,如果他们有一个以上,则为他们提供一个列表。 然后,我会保留他们的选择,以便下次打开那个。 据我了解,Android没有默认的媒体播放器。 我有原始的Droid,它有一个媒体播放器,但我了解其他运营商使用自己的,或者用户可以卸载标准的。 我尝试过一些东西,却无法正常工作。 我尝试了这个代码,它应该得到一个支持意图的包列表。 它适用于“application / pdf”和“video / *”之类的东西。 当我用“audio / *”尝试它时,我得到一个空列表,即使我安装了Android媒体播放器和MixZing。 也尝试了“媒体/ *”,什么都没得到。 PackageManager packageManager = getPackageManager(); Intent testIntent = new Intent(Intent.ACTION_VIEW); testIntent.setType(“audio/*”); List list = packageManager.queryIntentActivities(testIntent, 0); 我已经看到这个代码工作并使用默认播放器打开音频文件,但我不想打开文件,我只想打开音频应用程序,就像用户从应用程序抽屉打开它一样。 Intent i = new Intent(Intent.ACTION_VIEW); Uri u = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,”1″); i.setData(u); startActivity(i); 我能想到的另一件事就是走出去获取最受欢迎的媒体播放器的包名并硬编码,并搜索手机以查看安装了哪些,但这似乎不是最好的方法。 我不明白为什么第一段代码不起作用。 可能没有为这些应用程序正确设置intentfilter,或者我使用了错误的代码或mimetypes。

AudioManager.isWiredHeadsetOn()在android中不起作用

我想检查是否插入了heaset ……我是这样做的 AudioManager am = (AudioManager)getSystemService(AUDIO_SERVICE); Log.i(“am.isWiredHeadsetOn()”, am.isWiredHeadsetOn()+””); 但我总是得到虚假的价值…… 为什么会这样?

Android耳机Jack Listener

有谁知道如何检测设备上的耳机插孔是否在Android上拔掉? 我有一个音乐播放器,我需要在拔下耳机时暂停音乐。 我发现最接近的是使用AudioManager 。 这是正确的方向吗?

在Android中将音量设置为最大

在我的应用程序中,我试图在播放音频剪辑到最大级别时设置音量,但它似乎没有任何影响。 我必须手动将音量调节到最高水平。 这是我的代码: MediaPlayer mp = new MediaPlayer(); mp.setVolume(1, 1);

如何使用ffmpeg改变音频节奏和音调个性?

我已经设法在我的android项目中使用ffmpeg和AudioTrack类播放音频文件。 我可以使用AudioTrack类setRate方法更改音频的速度。 但它也改变了音频的音调,我想只改变音频的速度,但我发现网上没有解决方案。 任何人都可以帮助我,因为没有这方面的支持。

无法访问AudioRecorder

我试图通过小型录音从服务中find声压级,但Android不会让我访问硬件。 我在Logcat中收到以下错误: 该错误来自以下代码: AudioRecord recordInstance = null; // We’re important… android.os.Process .setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO); short bufferSize = 4096;// 2048; recordInstance = new AudioRecord(MediaRecorder.AudioSource.MIC, this //line 167 .getFrequency(), this.getChannelConfiguration(), this .getAudioEncoding(), bufferSize); //object not created tempBuffer = new short[bufferSize]; recordInstance.startRecording(); 会发生什么是recordInstance从未正确创建,所以当它到达结尾并调用recordInstance.startRecording()时,recordInstance仍为null。 Android在定义中拒绝我的程序请求。 有谁知道这些错误表明了什么? 我在网上找不到列表。 AudioRecord Docs 谢谢

Android:如何使用声音资源包含通知声音?

查看开发人员文档,我看到如何使用默认声音以及如何使用Uri ,但我没有看到如何使用资源。 如何在res/raw文件夹中使用其中一个声音? 比如MP3或WAV文件?

媒体插件错误代码:1

我无法使用Cordova Media插件播放本地声音。 我的platforms\android\res\xml\config.xml有正确的选项… …以及AndroidManifest.xml的权限选项… 然而,当我尝试播放声音时,我什么也得不到: 注意:我正在使用Apache Cordova 3.3.0

音频记录输出的mimetypes设置为video

我写了一个简单的录音机程序。 我将输出格式设置为THREE_GP,但生成的文件的mimetypes设置为video(当我尝试查看文件详细信息时)。 知道为什么吗? mRecorder = new MediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); mRecorder.setOutputFile(recordingFilePath);

即时解密音频/video到MediaPlayer

我一直在寻找几天,但无法得到如何做到这一点的明确答案。 我的SD卡上有一些加密的音频/video文件,我想将它发送到MediaPlayer,并在解密工作的同时开始播放。 它最初会创建一个缓冲区,当它有足够的初始数据开始播放时,MediaPlayer将开始播放,并在后台解密并继续发送数据。 我环顾四周,大部分解决方案似乎都指向了localhttpserver,然后将文件发送到服务器,当它返回时,它将开始播放音频/video,就像直播一样。 我不知道的是解密代码在哪里? 在服务器端? 如果是这样,在哪一部分呢? 我也看过这个http://libeasy.alwaysdata.net/解决方案,它可能能够解决它,但我似乎无法理解它是如何工作的。 我知道它创建了一个本地服务器,但在Cipher部分,我自己的解密如何发挥作用? private void myPlay(String path) { mServer = new LocalSingleHttpServer(); mServer.setCipher(myGetCipher()); mServer.start(); path = mServer.getURL(path); mVideoView.setVideoPath(path); mVideoView.start(); } public void onCompletion(MediaPlayer mp) { // MediaPlayer.OnCompletionListener interface mServer.stop(); } 因为我对Android开发很新,所以如果我不清楚或者其他什么,请耐心等待。 谢谢。