标签: audio-player

适用于Android手机上音效的适当音频格式

我描述了我的程序,结果发现大部分的CPU都花在了上面SoundPool.play().

游戏有大约10个声音文件,每个文件不到1秒.目前它们是64kbs可变MP3.它们SoundPool在开始时加载到a 并在整个游戏中频繁播放.

我的问题:什么音频格式(例如mp3,ogg等)对移动设备上的CPU和电池消耗最友好?我只将它们用于音效,而且不需要同时播放.

非常感谢.

performance android mobile-phones power-management audio-player

5
推荐指数
1
解决办法
2048
查看次数

如何从android中的url播放音频文件

我需要在我的应用程序中播放远程服务器的音频文件.当我使用localhost服务器(使用WAMP)测试时,我可以玩.当从服务器提供相同的文件时它不工作..文件没有扩展名,内容是MP3

String fileUrl = "http://192.168.1.131/myproject/songs/xyz";
String url = "http://myserver/songs/xyz"; //(myserver -> A remote server)
mVideoView.setVideoURI(Uri.parse(fileUrl));
mVideoView.requestFocus();
Run Code Online (Sandbox Code Playgroud)

此外,我需要更好地控制玩家.
请帮忙...

android audio-streaming audio-player

5
推荐指数
3
解决办法
3万
查看次数

使用MusicPlayer和Music Sequence播放midi文件

我使用以下代码成功地让iOS使用soundfont示例播放.mid(midi)文件:

-(void) playMusic:(NSString*) name
{
    NSString *presetURLPath = [[NSBundle mainBundle] pathForResource:@"GortsMiniPianoJ1" ofType:@"SF2"];
    NSURL * presetURL = [NSURL fileURLWithPath:presetURLPath]; 
    [self loadFromDLSOrSoundFont: (NSURL *)presetURL withPatch: (int)3];

    NSString *midiFilePath = [[NSBundle mainBundle] pathForResource:name ofType:@"mid"];
    NSURL * midiFileURL = [NSURL fileURLWithPath:midiFilePath];

    NewMusicPlayer(&musicPlayer);

    if (NewMusicSequence(&musicSequence) != noErr) 
    {
        [NSException raise:@"play" format:@"Can't create MusicSequence"];  
    }

    if(MusicSequenceFileLoad(musicSequence, (CFURLRef)midiFileURL, 0, 0 != noErr)) 
    {
        [NSException raise:@"play" format:@"Can't load MusicSequence"];
    }

    MusicPlayerSetSequence(musicPlayer, musicSequence);
    MusicSequenceSetAUGraph(musicSequence, _processingGraph);
    MusicPlayerPreroll(musicPlayer);
    MusicPlayerStart(musicPlayer);
}
Run Code Online (Sandbox Code Playgroud)

但是,当我在第一个文件仍在播放时尝试播放第二个文件时出现问题.

我尝试了很多变化.首先,上面的代码将同时播放两个轨道.或者,我尝试过:

DisposeMusicPlayer(musicPlayer);
DisposeMusicSequence(musicSequence);
Run Code Online (Sandbox Code Playgroud)

之前NewMusicPlayer(&musicPlayer),但这会产生一个奇怪版本的曲调,只播放零星的音符.

我很乐意简单地调用这种方法,然后播放下一首曲目.

midi objective-c audio-player ios coremidi

5
推荐指数
1
解决办法
5598
查看次数

音频阵列缓冲区到音频元素

我正在创建一个chrome应用程序,用于解密从我的PBX服务器发送到我的Gmail帐户的mp3并播放它们.我已经完成了除gmail中的音频播放器之外的所有内容.我有两个选择:

  1. 使用Web Audio API(我让它工作但无法弄清楚如何制作一个功能齐全的搜索栏).
  2. 从数组创建一个createObjectURL并传递给audio tag或soundmanager2.

我想尽可能多地重用代码,并且无法找到带有搜索条的预制Web Audio API播放器.所以,我尝试尝试选项2,以下是我去的地方

window.AudioContext = window.AudioContext || window.webkitAudioContext;
var context = new AudioContext();
context.decodeAudioData(arr.buffer, function (soundBuffer) {
    windowURL = window.URL || window.webkitURL;
    var audio = document.createElement("audio");
    audio.src = windowURL.createObjectURL([soundBuffer]);
    var someDiv = document.getElementById("testDiv");
    someDiv.appendChild(audio);
    audio.onload = function (e) {
        windowURL.revokeObjectURL(this.src);
    }
}, function (err) {
   console.log("couldnt decode buffer");
});
Run Code Online (Sandbox Code Playgroud)

它失败并且"无法在'URL'上执行'createObjectURL':未找到与提供的签名匹配的功能." 我该如何正确编码这个函数来创建一个可以被chrome的mp3播放器或soundmanager2使用的url?

javascript audio html5 audio-player google-chrome-extension

5
推荐指数
2
解决办法
1234
查看次数

当我的应用程序启动audioplayer时,Spotify会暂停

我知道这是可能的,但我还没有找到,所以我问它.

当第三方音乐播放时,在我的应用程序中开始播放mp3声音时,例如Spotify.Spotify暂停,你必须恢复Spotify,让它再次播放.

当我的audioplayer声音开始时,如何让Spotify继续播放?

spotify audio-player

5
推荐指数
1
解决办法
1418
查看次数

如何点击随机音乐曲目?

我想创建一个我有图像的网站,如果有人点击此图片,则应播放播放列表中的随机歌曲或类似内容.我有一个正在运行的代码来激活一首歌,但如果我想要多首歌,它就不再有用了.

<html>
  <head>
    <title>title</title>
        <link type="text/css" rel="stylesheet" href="style.css"/>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
        <script src="script.js"></script>
  </head>
  <body>
    <div id="headline">
      <h1 id="hl">Headline</h1>
      <img class="play" id="pic" src="pic.png"/>
      <img class="pause" id="pic2" src="pic.png"/>
    </div>
  </body>
 </html>
Run Code Online (Sandbox Code Playgroud)
$(document).ready(function() {

    $(".pause").css ('display', 'none');

    $(".play").click (function(){
        $(".play").css ('display', 'none');
        $(".pause").css ('display', 'inline-block');
    });
    $(".pause").click (function(){
        $(".play").css ('display', 'inline-block');
        $(".pause").css ('display', 'none');
    });

    var audioElement = document.createElement('audio');
    audioElement.setAttribute('src', 'song1.mp3');
    /*var audioElement2 = document.createElement('audio');
    audioElement2.setAttribute('src', 'song2.mp3');*/

    $.get();

    audioElement.addEventListener("load", function() {
        audioElement.play();
    }, true);
    /*audioElement2.addEventListener("load", function() {
        audioElement2.play();
    }, true);*/

    var x = …
Run Code Online (Sandbox Code Playgroud)

html javascript random jquery audio-player

5
推荐指数
1
解决办法
1648
查看次数

如何在Linux上的C ++中播放.wav文件?

我有一个关于在C ++中播放.wav文件的问题。我正在寻找一种可以在Linux和Windows上播放的方法,并且想在功能结束后将其分解,您是否知道此示例?

感谢您的任何回答:)!

我来自德国,请不要为我的语法或拼写而生气:D。

c++ linux windows playback audio-player

5
推荐指数
1
解决办法
4133
查看次数

如何获取外部存储权限?

我正在为Android开发一个mp3播放器应用程序,我收到与用户权限相关的错误(READ_EXTERNAL_STORAGE)

这是我要求权限的代码:

int permissionCheck = ContextCompat.checkSelfPermission(PlayListActivity.this,
                Manifest.permission.READ_EXTERNAL_STORAGE);

        if (ContextCompat.checkSelfPermission(PlayListActivity.this,
                Manifest.permission.READ_EXTERNAL_STORAGE)
                != PackageManager.PERMISSION_GRANTED) {


            // OPCIONAL(explicaciones de poque pedimos los permisos)
            if (ActivityCompat.shouldShowRequestPermissionRationale(PlayListActivity.this,
                    Manifest.permission.READ_EXTERNAL_STORAGE)) {

            } else {
                //pedir permisos
                ActivityCompat.requestPermissions(PlayListActivity.this,
                        new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
                        permissionCheck);
Run Code Online (Sandbox Code Playgroud)

这是代码的其余部分:

ArrayList<HashMap<String, String>> songsListData = new ArrayList<HashMap<String, String>>();

    SongsManager plm = new SongsManager(PlayListActivity.this);
    // get all songs from sdcard
    this.songsList = plm.getPlayList();

    // looping through playlist
    for (int i = 0; i < songsList.size(); i++) {
        // creating new HashMap
        HashMap<String, String> song = songsList.get(i);

        // adding …
Run Code Online (Sandbox Code Playgroud)

mp3 android file-permissions audio-player android-music-player android-studio

5
推荐指数
2
解决办法
3万
查看次数

JavaScript声音播放/停止/暂停

我正在开发一个健全的JavaScript库.我可以用下面的代码播放声音.

var soundPlayer = null;

function playSound(){

soundPlayer = new Audio(soundName).play();

}
Run Code Online (Sandbox Code Playgroud)

如何停止和暂停此音频?当我尝试这样的时候:

soundPlayer.pause();
Run Code Online (Sandbox Code Playgroud)

要么

soundPlayer.stop();
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

Uncaught TypeError: soundPlayer.stop is not a function
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

javascript audio audio-player

5
推荐指数
1
解决办法
7636
查看次数

不能和mingus一起玩

我来使用mingus试图在python中重现一些音符.根据这里的回答,我尝试过:

from mingus.midi import fluidsynth

fluidsynth.init('/home/btc/Escritorio/SinestesiaRCB/gfx/ViolinsLong.sf2',"alsa")

fluidsynth.play_Note(64,0,100)
#Also tried with Note("C-5") and so forth
Run Code Online (Sandbox Code Playgroud)

使用其中一个sf2文件.但后来我得到了错误:

fluidsynth:warning:无法将线程设置为高优先级

fluidsynth:警告:在通道9上找不到预设[bank = 128 prog = 0]

研究了一下,这个答案说:

对于通用MIDI兼容性,默认声音字体乐器分配为0至0道和10-15的0区,0级("Acoustic Grand Piano")和9频道的0级("默认鼓组")显然,你的声音字体没有后者.如果您的MIDI文件不采用通用MIDI兼容乐器并且不尝试在通道9上播放鼓声,则无关紧要.

但除此之外,这可能会让事情变得更加清晰,我仍然不知道如何解决它.

另外,如果我使用第一个链接的答案相同的文件,那么我得到的错误是这个(并且不知道如何解决它):

fluidsynth:warning:无法将线程设置为高优先级

fluidsynth:警告:无法将样本数据固定到RAM; 交换是可能的.

更新

使用sudo权限运行程序会删除此错误,但它不会发出声音.这样,我得到的错误是:

QStandardPaths:未设置XDG_RUNTIME_DIR,默认为'/ tmp/runtime-root'

我认为在fluidsynth驱动程序中选择的驱动程序模式可能存在问题,但我已尝试使用相同的结果(alsa,oss等).为了完整起见,我在VM中运行它,其中的其他声音在我的主机扬声器中正确再现.

但是根据这个答案,我想它应该通过传递给它正确的声音环境变量来解决.我不知道.我尝试过:

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY python3 /home/btc/Escritorio/SinestesiaRCB/SinestesiaRCB.py
Run Code Online (Sandbox Code Playgroud)

在需要文件的完整路径的地方,因为这需要sudo权限并更改其工作目录,最后出现同样的错误:XDG_RUNTIME_DIR.

更新2

如果我使用sudo -E选项运行它,则错误将替换为新错误:

QStandardPaths:运行时目录/ run/user/1000上的错误所有权,1000而不是0

我正在读一些网页,1000用户应该是默认用户而不是root用户. …

python audio-player

5
推荐指数
1
解决办法
326
查看次数