小编ing*_*abh的帖子

MediaMetadataCompat附加功能

有没有办法使用支持库中的MediaMetadataCompat附加功能?

使用MediaMetadata我可以设置额外内容,但使用compat,我不能.

android mediainfo chromecast mediabrowserservicecompat

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

Android InApp购买Null指针异常

我在我的应用程序中实现了inApp购买,但有时它给了我NPE,下面是堆栈跟踪.如果有兴趣的话,我也可以发布代码.

java.lang.RuntimeException: Unable to start service com.market.BillingService@48400380 with null: java.lang.NullPointerException
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3063)
at android.app.ActivityThread.access$3600(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2096)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.market.BillingService.handleCommand(BillingService.java:369)
at com.market.BillingService.onStart(BillingService.java:359)
at android.app.Service.onStartCommand(Service.java:420)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3053)
... 10 more
java.lang.NullPointerException
at com.market.BillingService.handleCommand(BillingService.java:369)
at com.market.BillingService.onStart(BillingService.java:359)
at android.app.Service.onStartCommand(Service.java:420)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3053)
at android.app.ActivityThread.access$3600(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2096)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

这里有相关的代码 …

android in-app-billing

7
推荐指数
2
解决办法
3826
查看次数

将视频转码为较低的比特率和流

我有一个工作应用程序将视频流式传输到Chromecast(使用nannoHttpd),一切正常.现在我的问题是:使用新设备录制的视频太大而无法播放,因此我想将视频重新编码为较低的比特率.

我尝试了ffmpeg,但结果并不令人满意,它会将apk大小增加14 MB.

现在我正在尝试MediaCodec api.它比ffmpeg更快,但它接受输入文件并将其写入输出文件,我想重新编码nannohttpd服务的字节数据.

现在我想到了一个解决方案,即转码视频并流式传输输出文件,但它有两个缺点;

  1. 如果文件太大而用户没有看到整个视频怎么办?大部分CPU,电池资源都被浪费了.
  2. 如果用户快速将长视频转发到未重新编码的时间怎么办?

android mediacodec

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

Android列表视图中的多个下载暂停恢复,包含进度更新

我正在尝试使用progressbar下载listview中的多个文件.我所取得的成就是,我可以开始特定下载,使用AsyncTask暂停/恢复它并更新进度条(对于单个文件),这部分效果很好

我的问题是我无法同时下载多个文件,当我将listview留到另一个屏幕时,虽然我的下载是在后台进行但进度没有更新,进度条显示0进度,好像它没有下载但是已经在后台下载.

android download android-asynctask

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

Android MediaRouter Volume事件

我希望在投射时实现Youtube应用程序中看到的音量变化,例如app是在后台还是在锁定屏幕上

像这样

private void createSession() {
    ComponentName receiver = new ComponentName(getPackageName(), RemoteReceiver.class.getName());
    mediaSession = new MediaSessionCompat(this, "PlayerService", receiver, null);
    mediaSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS |
            MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS);
    mediaSession.setPlaybackState(new PlaybackStateCompat.Builder()
            .setState(PlaybackStateCompat.STATE_PLAYING, 0, 1f)
            .setActions(PlaybackStateCompat.ACTION_PLAY_PAUSE)
            .build());
    AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    audioManager.requestAudioFocus(new AudioManager.OnAudioFocusChangeListener() {
        @Override
        public void onAudioFocusChange(int focusChange) {
            // Ignore
        }
    }, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
    mediaSession.setActive(true);

    mediaRouter = MediaRouter.getInstance(this);
    mediaRouter.setMediaSessionCompat(mediaSession);
}
Run Code Online (Sandbox Code Playgroud)

现在我得到滑块就像上面的图像,它响应音量按钮,但我没有收到我的广播接收器的变化.

audio android mediarouter

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

MediaBrowserCompat队列查找项目

根据Uamp样本onPlayFromMediaId调用时,它mediaIdqueueitems已经存储的列表匹配iterator如下

public static int getMusicIndexOnQueue(Iterable<MediaSessionCompat.QueueItem> queue,
         String mediaId) {
    int index = 0;
    for (MediaSessionCompat.QueueItem item : queue) {
        if (mediaId.equals(item.getDescription().getMediaId())) {
            return index;
        }
        index++;
    }
    return -1;
} 
Run Code Online (Sandbox Code Playgroud)

除非你的列表中有一千个项目,它的滞后程度很严重,否则这种方法很有效,在这种情况下,我有什么方法可以获得队列中的索引吗?

PS-此代码来自v1分支,尽管基于v2 kotlin的分支具有相同的概念.

android android-mediasession

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

电子设置全屏点击

我试图点击应用程序窗口全屏,但得到以下错误 main.js:29 Uncaught TypeError: Cannot read property 'setFullScreen' of undefined

main.js

    const electron = require('electron')
// Module to control application life.
const app = electron.app
// Module to create native browser window.
const BrowserWindow = electron.BrowserWindow

// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
let mainWindow

function createWindow () {
  // Create the browser window.
  mainWindow = new BrowserWindow({width: 1200, height: 600}) …
Run Code Online (Sandbox Code Playgroud)

javascript electron

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

android-如何在警告对话框中设置列表项的文本大小

在我的应用程序中,当您单击时会出现一个按钮,将出现一个警报对话框.该警报对话框由单选列表项组成.这里我想设置单选项列表项的文本大小.可能吗?如果是的话怎么做

以下是我的代码

sclist.java

package com.examples.scl;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class sclist extends Activity {

 private static final int DIALOG_SINGLE_CHOICE = 1;


  @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case DIALOG_SINGLE_CHOICE:
            return new AlertDialog.Builder(sclist.this)
                .setIcon(R.drawable.alert_dialog_icon)
                .setTitle("Single choice list")
                .setSingleChoiceItems(R.array.select_dialog_items2, 0, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {

                        /* User clicked on a radio button do some stuff */
                    }
                })
                .setPositiveButton("ok", new DialogInterface.OnClickListener() …
Run Code Online (Sandbox Code Playgroud)

android

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

如何在sqlite数据库中查找列的最大值

public Cursor getBiggestInTheColumn() 
{
     return db.query(HEADER_TABLE, null,"MAX(key_Division)", null, null, null, null);
}
Run Code Online (Sandbox Code Playgroud)

我将此方法称为 Cursor cc=db.getBiggestInTheColumn();

但它强行关闭了应用程序.请帮助我

sqlite android

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

Android:如何向一个活动添加两个视图

我有一个程序,我想在一个活动中添加两个视图,比如

 public class AnimationActivity extends Activity {
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(new GraphicsViewForBitmap(this));
        setContentView(new GraphicsView(this));


    }
}
Run Code Online (Sandbox Code Playgroud)

其中GraphicsViewForBitmap和GraphicsView是两个类扩展视图.所以我想一次两个视图应该设置为一个活动.可能吗?Plz给我答案.谢谢

android

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