小编4th*_*his的帖子

android - 每次按下按钮时如何点击播放声音文件?

我已经开了一个新项目 -

现在我想要做的是 - 通过按下按钮我想要播放一个mp3文件 - 而且每按一次按钮,声音文件将再次从它开始播放 - 所以让我们说mp3是10秒长,我按下按钮然后播放,4秒后我再次按下按钮,声音将再次播放.

现在我想知道的是 - 1-我应该把mp3文件放在哪里?

2 - 我必须添加什么代码,以便按下按钮时将播放mp3文件(让我们调用mp3文件click_sound.mp3)?

3-我需要在代码中添加什么才能在每次按下按钮时再次播放声音?

这是MainActivity.java的代码 -

package com.example.test1;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
Run Code Online (Sandbox Code Playgroud)

这是activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" > …
Run Code Online (Sandbox Code Playgroud)

audio android

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

Android - 片段的bindService

我有一个活动类,在它的onResume部分我已经使用了下一个代码 -

    @Override
protected void onResume() {

    super.onResume();
    bindService(new Intent(MainActivity.this, IMService.class), mConnection , Context.BIND_AUTO_CREATE);
}
Run Code Online (Sandbox Code Playgroud)

onPause我使用下一个代码 -

@Override
protected void onPause() 
{       
    unbindService(mConnection);
    super.onPause();
}
Run Code Online (Sandbox Code Playgroud)

您可以理解我对服务具有约束力和解除绑定性.

现在问题是我想使用片段而不是Activity.

为了做到这一点,我已经将onPuse代码更改为 -

    @Override
protected void onPause() 
{       
    getActivity().unbindService(mConnection);
    super.onPause();
}
Run Code Online (Sandbox Code Playgroud)

看起来很好.

onResume我遇到的问题是绑定部分,我已经尝试了下一个代码 -

            @Override
    protected void onResume() {

        super.onResume();
 bindService(new Intent(getActivity(), IMService.class), mConnection , Context.BIND_AUTO_CREATE);
    }
Run Code Online (Sandbox Code Playgroud)

但Eclipse给我一个错误说 -

The method bindService(Intent, ServiceConnection, int) is undefined for the type MainFragment
Run Code Online (Sandbox Code Playgroud)

该服务在清单中显示如下 -

    <service android:name="com.example.test.services.IMService" >
    </service>
Run Code Online (Sandbox Code Playgroud)

那么为什么我不能将服务绑定到片段中呢?也许我需要在getActivity代码中添加一些东西?

提供任何帮助 …

android android-fragments

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

Android - 如何使用本地广播接收器?

我正在尝试使用本地广播接收器.

为了做到这一点,我已经完成了下一步 -

1)在一项活动中,我想要发生一些事情,我创造了一个课程 -

private class NewGroupReceiver extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d("The group ", "GOT IN THE RECIVING");
        Toast.makeText(this, "Working",Toast.LENGTH_SHORT).show();  
    }

}
Run Code Online (Sandbox Code Playgroud)

2)在同一个活动中,我使用了下一个代码来创建一个接收器 -

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    NewGroupReceiver receiver = new NewGroupReceiver();

    //the intent filter will be action = "com.example.demo_service.action.SERVICE_FINISHED"
    IntentFilter filter= new IntentFilter("com.example.apps.action.NEW_GROUP");

    // register the receiver:
    registerReceiver(receiver, filter);
}
Run Code Online (Sandbox Code Playgroud)

3)在服务类中,我使用下一个代码知道发生了什么事情 -

Intent resultsIntent=new Intent("com.example.apps.action.NEW_GROUP");

LocalBroadcastManager localBroadcastManager =LocalBroadcastManager.getInstance(this);

localBroadcastManager.sendBroadcast(resultsIntent);
Run Code Online (Sandbox Code Playgroud)

现在的问题是,当我想知道的事情发生时 - 我看到它进入我在步骤3中使用的代码,但它似乎没有进入BroadcastReceiver - 第1步代码.

知道我在这里做错了什么吗?谢谢你的帮助.

android broadcastreceiver

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

如何检查哪个图像链接到Android中的ImageView?

我在我的应用程序中有一个按钮和一个ImageView.我想要做的是当我按下按钮然后ImageView上的图像将改变.我只有两个图片文件.

我想要做的是 - 如果第一张图片链接到ImageView,而不是通过点击按钮将其更改为pic2,如果pic2已链接,则点击该按钮会将其更改回第一张图片文件.

这是我试图使用的onClick方法:

public void onClick(View v) {

        ImageView ib1 = (ImageView)findViewById(R.id.imageView1)

         View p1 = findViewById(R.drawable.pic1); 

        if(ib1.getResources()==R.drawable.pic1){
            ib1.setImageResource(R.drawable.pic2); 
        }else{
            ib1.setImageResource(R.drawable.pic1); 
        }

    }
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

android imageview

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