小编JRa*_*Bad的帖子

在 Chrome 扩展中使用 sendMessage 时丢失了 webkitMediaStream 对象类型

所以我试图从选项卡中捕获网络音频并将其传递到另一个与页面上的 DOM 元素一起使用的脚本中。

扩展脚本

在 中background.js,我使用以下脚本:

    chrome.tabCapture.capture(constraints, function(stream) {
        console.log("\ngot stream");
        console.log(stream);

        chrome.tabs.sendMessage(tabID, {
            "message": "stream",
            "stream": stream
        });
    });
Run Code Online (Sandbox Code Playgroud)

Developer Toolkit 向我展示了创建的对象确实是一个 MediaStream 对象。(我想要并且似乎工作正常)。

扩展控制台:

MediaStream {onremovetrack: null, onaddtrack: null, onended: null, ended: false, id: "c0jm4lYJus3XCwQgesUGT9lpyPQiWlGKHb7q"…}

内容脚本

我在页面本身上使用内容脚本(注入),然后将 JSON 序列化对象拉回:

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
  if (request.message === "stream") {
    var thisStream = request.stream;
    console.log(thisStream);
    if (!thisStream) {
      console.log("stream is null");
      return;
    }    
    loadStream(thisStream);
  }
  else if (request.message === "statusChanged") {
    console.log("statusChanged");
  }
});
Run Code Online (Sandbox Code Playgroud)

页面控制台

不幸的是,由于 JSON 序列化,对象类型丢失了: …

javascript json casting sendmessage google-chrome-extension

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

在Eclipse中的控制台中显示Java错误

我进行了几次搜索,也许我对Java开发或使用Eclipse不太了解,但是我一生中找不到答案。这是我的问题。

每当我调试一个类时,有时我会故意提供错误的输入以强制崩溃。当应用崩溃时,我希望错误显示在控制台中。现在,它跳到调试窗口,并以我不喜欢的奇怪格式显示错误信息。叫我老学校,但是我习惯了PHP编码,喜欢原始的崩溃输出。我希望控制台显示该错误代码,而不必在“调试”窗口中摸索。

我知道这是有可能的,因为我正在在线上观看教程,并且在视频/屏幕快照中,它将在控制台中以红色文字显示这些错误。

如何启用此功能?

java eclipse settings preferences

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

"必须已经调用了setView" - 自定义类扩展按钮

所以我有一个12 x 9网格的"按钮"称为"瓷砖".Tile.java扩展了小部件"Button".

我现在遇到了一个问题,我正试图让按钮显示一个回忆按下按钮ID的吐司.

网格是动态添加的,我希望它保持这种状态.

这是GameBoardActivity.java的代码:

这使得"瓷砖"的12x9网格为每个网格添加了一个监听器.

    public void gridRowButtons(int iterations){
    final Tile[] gridSpaces = new Tile[12];
    LinearLayout.LayoutParams buttonParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1.0f);
    for (int i = 0; i < 12; i++) {
        String idString = String.valueOf(aToI[iterations]) + String.valueOf(i + 1);
        final int id = getResources().getIdentifier(idString, "id", getPackageName());
        gridSpaces[i] = new Tile(getApplicationContext());
        gridSpaces[i].setText("");
        gridSpaces[i].setHeight(40);
        gridSpaces[i].setWidth(40);
        gridSpaces[i].setLayoutParams(buttonParams);
        gridSpaces[i].setId(id);
        OnClickListener showID = new OnClickListener(){
            public void onClick(View view){                 
                TextView text = (TextView) findViewById(R.id.tileIDText);
                String tileID = getApplicationContext().getResources().getResourceEntryName(id);
                text.setText(tileID);
                Tile clickedTile = …
Run Code Online (Sandbox Code Playgroud)

java android toast

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

Java中的空指针异常.(用数组循环打破?)

所以我已经阅读了其他人的一些其他问题,但找不到适合我的这个问题的解决方案.我正在学习java并决定制作一个简单的基于控制台的Battleship游戏来测试一些基本的java原理和实现.就在程序的最开始,我收到一个NullPointerException错误.

以下是我的代码在错误点之前的样子:

public class Battleship {

public static String[] xValues = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"};
public static String[] shipNames = {"patrol", "sub", "cruiser", "battle", "carrier"};
public static boolean isCollision = true;

//Create the Ship Array
public static Ship[] ships = new Ship[5];



public static void main(String[] args) {

    //Welcome the User
    System.out.println("Welcome to Battleship!\nLet's see how many tries it take to sink the ships!");

    //Now, let's make 5 kinds of ships: Patrol Boat, Submarine, …
Run Code Online (Sandbox Code Playgroud)

java arrays for-loop

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