小编Gan*_*Gan的帖子

如何获取我的活动背景?

我真的不明白这整个事情是如何工作的,所以如果我有一些类A需要B扩展的类的上下文,Activity我该如何获得该上下文?

我正在寻找一种比将上下文作为类A构造函数的参数更有效的方法.例如,如果类A将有数百万个实例,那么我们最终会有数百万个冗余指针,Context而我们应该能够以某种方式只有一个地方和一个getter函数......

android android-context

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

Aubio用于Android上的BPM跟踪

我正在开发一个需要BPM跟踪的Android音频项目.我决定编写自己的不是一个好主意,在环顾四周之后,我发现了一些可以进行BPM跟踪的库,例如aubio,vamp,echonest等.出了很多,aubio似乎是一个不错的选择.问题是我找不到可以帮助理解我如何使用库的好文档,例如,哪种输入音频格式是兼容的(我应该在将音频传递给函数之前对其进行预处理)等.

你能指点我一些开源项目的文档或aubio的实现(在android上会是一个奖励).

如果你认为有更简单的方法(另一个算法/库)来移植到android(最好是在c),请告诉我.

谢谢.

c android audio-processing aubio beat-detection

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

复制二进制文件的内容

我正在设计一个图像解码器,作为第一步,我试图复制使用cie打开文件,并将其内容写入新文件.下面是我使用的代码.

while((c=getc(fp))!=EOF)
  fprintf(fp1,"%c",c);
Run Code Online (Sandbox Code Playgroud)

其中fp是源文件,fp1是目标文件.程序执行时没有任何错误,但图像文件(".bmp")未正确复制.我观察到复制文件的大小较小,只有20%的图像可见,其他都是黑色.当我尝试使用简单的文本文件时,副本已完成.

你知道问题是什么吗?

c copying filehandle

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

在java中将对象添加到linkedlist/arraylist

我创建了一个存储类,并用作我的arraylist/Linked列表的数据类型.

private LinkedList bid_history;
Run Code Online (Sandbox Code Playgroud)

我在我的结构中初始化了这个

bid_history=new LinkedList <Bid_History> ();
Run Code Online (Sandbox Code Playgroud)

我使用add添加新项目到列表中,如下图所示

bid_history.add(new Bid_History(bid_count,unit_price,bid_success));
Run Code Online (Sandbox Code Playgroud)

在'n'次迭代后,我检查了列表的内容,发现列表中有'n'个元素,但它们是相同的.即我添加的最后一个元素占据了整个列表.就好像我在列表中添加了一个引用变量?

知道我可能犯了哪个错误吗?我也使用了一个arraylist,同样的问题.我猜我访问说明符做错了!但我没有想法.....

----添加-------我使用递归函数

bid()
{
   int bid,quantity;
        bid_success=false;
        bid_count++;
        System.out.println("Starting to bid, Bid ID:"+bid_count);
        quantity=(int)(rated_power*duration/60);
        if(bid_history.isEmpty())
        {
            unit_price=10;
        }
        else
        {
            unit_price++;
        }
        bid=unit_price*quantity;
        //Sending the calculated bid
        send_res(unit_price,quantity,500);
        long startTimeMs = System.currentTimeMillis( );
        System.out.println("Time:"+startTimeMs);
        while(!(System.currentTimeMillis( )>(startTimeMs+2000)));
        System.out.println("Time at end:"+System.currentTimeMillis( ));

        bid_history.add(new Bid_History(bid_count,unit_price,bid_success));

        if(bid_success!=true)
        {
            bid();
        }
}
Run Code Online (Sandbox Code Playgroud)

打印代码如下

int count=0,size;
size=bid_history.size();
while(count<size)
System.out.println(((Bid_History)bid_history.get(count++)).getBid_amount());
Run Code Online (Sandbox Code Playgroud)

java linked-list arraylist

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