小编ste*_*ieb的帖子

ExoPlayer AudioTrack Stuttering

我有自己TrackRenderer的mp3解码器实现,我集成了.当一个棒棒糖设备进入待机状态并返回时,它并不总是可重复但音频开始口吃,直到我强制停止应用程序.

一开始,我认为这是我实现的解码器,所以我尝试将口吃轨道与正常轨道之间的文件输出进行比较.文件是完全相同的,然后我认为它可能需要很长时间来解码,所以我增加了缓冲区大小并调用了setPlayReadyfalse,以便数据缓冲.它像我没有停顿一样口吃.我目前认为问题在于我的音轨实现或操作系统错误.该错误仅发生在Lollipop设备上.

谢谢.

我TrackRenderer使用相同的工作流程为AudioTrackRenderer,与解码器支持mp3,而不是OPUS我自己的本地实现.

mp3 android audiotrack exoplayer

38
推荐指数
1
解决办法
1128
查看次数

Perl6:使用正则表达式捕获字符串中的Windows换行符

免责声明:我在PerlMonks上交叉发布了这个帖子.

在Perl5中,我可以快速轻松地打印出\r\nWindows样式行结尾的十六进制表示:

perl -nE '/([\r\n]{1,2})/; print(unpack("H*",$1))' in.txt
0d0a
Run Code Online (Sandbox Code Playgroud)

要在Unix上创建Windows结束文件,如果要测试,请创建一个in.txt包含单行和行结尾的文件.然后:perl -ni -e 's/\n/\r\n/g;print' in.txt.(或在vi/vim中,创建文件,然后执行:set ff=dos).

我在Perl6中尝试过很多东西来做同样的事情,但无论我做什么,我都无法工作.这是我最近的测试:

use v6;
use experimental :pack;

my $fn = 'in.txt';

my $fh = open $fn, chomp => False; # I've also tried :bin
for $fh.lines -> $line {
    if $line ~~ /(<[\r\n]>**1..2)/ {
        $0.Str.encode('UTF-8').unpack("H*").say;
    }
}
Run Code Online (Sandbox Code Playgroud)

输出 0a,如:

/(\n)/
/(\v)/ 
Run Code Online (Sandbox Code Playgroud)

首先,我甚至不知道我正在使用unpack()正确的正则表达式.其次,如何\r\n在P6中捕获换行符的两个元素()?

regex perl6 raku

9
推荐指数
1
解决办法
262
查看次数

在 Ubuntu 16.04LTS 上的 Jupyter 笔记本中安装 Perl

抱歉,如果问题太明显。

我在安装 Iperl 时遇到问题

https://github.com/EntropyOrg/p5-Devel-IPerl.git

我知道无论如何 Jupyter 都可以选择通过 %%perl 运行 Perl 代码,但将其添加到每个单元格可能会很烦人。

接下来我遵循的步骤:

-首先我安装了Perl

sudo apt-get install perl
Run Code Online (Sandbox Code Playgroud)

-接下来,我按照他们提供的步骤进行操作:

sudo apt-get install libzmq3-dev ipython ipython-notebook libmagic-dev
git clone https://github.com/EntropyOrg/p5-Devel-IPerl.git

cd p5-Devel-IPerl
dzil build 
Run Code Online (Sandbox Code Playgroud)

(我在发现我必须cpanm --installdeps .在内部运行/home/User/p5-Devel-IPerl以安装所需的依赖项之前执行了此步骤)

cpanm --installdeps .

./bin/iperl console  # start the console

./bin/iperl notebook # start the notebook --> These commands doesn't work because my Ipython notebooks are located in Anaconda2
Run Code Online (Sandbox Code Playgroud)

我的问题是:

当我按照这些说明进行操作时,我猜安装是在 Anaconda2 之外完成的,也许正因为如此,它不会出现在笔记本中。

如何将其包含在 Anaconda2 中?

如果不可能,如何至少在Anaconda2父文件夹之外的并行笔记本中运行它?

非常感谢您的任何建议。

perl jupyter-notebook

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

如何使用 join 加速这个 LINQ 查询?

我有两个对象模型的集合,我正在比较每个属性的不平等。

ObservableCollection<LayerModel> SourceDrawingLayers
Run Code Online (Sandbox Code Playgroud)

...和:

ObservableCollection<LayerModel> TargetDrawingLayers
Run Code Online (Sandbox Code Playgroud)

我收到了关于创建非 equijoin LINQ 查询的很好的建议,并且让它在我的应用程序中发挥了很大的作用,但现在我想加快速度:

var onOffQuery = from target in TargetDrawingLayers
                 from source in SourceDrawingLayers
                 where target.Name == source.Name && target.OnOff != source.OnOff
                 select target;
Run Code Online (Sandbox Code Playgroud)

我的理解是,我将查询乘以源图形*中的项目*数、目标图形中的项目数和我填充到的目标图形数TargetDrawingLayers

我想加速这个操作,Join但我遇到!=了它的一部分问题。

我玩弄这个:

var newQuery = from source in SourceDrawingLayers
    join target in TargetDrawingLayers
    on target.name
    where target.OnOff != source.OnOff
    select target;
Run Code Online (Sandbox Code Playgroud)

但我在语法上挣扎。有人可以用它让我走上正轨吗?

此外,这甚至会是显着的性能改进吗?

c# linq observablecollection

3
推荐指数
1
解决办法
122
查看次数

Perl - 在变量中添加变量

我想添加变量$hostname在变量$hostame_table与附加_table.

我的代码:

use Sys::Hostname ();
my $hostname = Sys::Hostname::hostname();
my $hostname_table = "$hostname"+"_table";
print "$hostname_table";
Run Code Online (Sandbox Code Playgroud)

我希望结果如此computername_table.

variables perl

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

Perl:验证命令行参数是整数而不是文件

我需要检查(Perl)命令行参数是否只是一个整数和一个文件.

我可以检查是否输入了正确数量的参数:

if (@ARGV != 2){
Run Code Online (Sandbox Code Playgroud)

并且,我可以检查以确保参数的顺序是正确的:

    if ($ARGV[0] >= $ARGV[1])
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何检查参数是否是一个文件.我想打印和错误消息,如果它是一个文件.

谢谢

perl

0
推荐指数
1
解决办法
920
查看次数

如何从 perl 中的哈希数组中获取键值

我的代码:

my @emp_details = [
    {
        CID => '21',
        ID => '1',
        ORDERING => '1',
        PID => '143'
    },
    {
        CID => '22',
        ID => '2',
        ORDERING => '1',
        PID => '67'
    }
];
Run Code Online (Sandbox Code Playgroud)

预期输出:所有键的值 - ID,即: [1,2]

即需要获取the emp_details列表中的两个哈希值并从每个 ID 中获取值。

在perl中怎么做?

我的试验:

my %hash =
map {$_->{ID} } @departments;
Run Code Online (Sandbox Code Playgroud)

错误输出: Not a HASH reference

我试过 map {$_->{ID} } %departments;

在这种情况下也没有回应。

perl hash

-1
推荐指数
1
解决办法
237
查看次数