【问题标题】:can we convert Audio (.mp3) to video (mp4) in android studio? how?我们可以在 android studio 中将音频 (.mp3) 转换为视频 (mp4) 吗?如何?
【发布时间】:2018-12-20 06:35:32
【问题描述】:

我是这方面的新手,我正在开发媒体播放器和录音应用程序的应用程序。其中我在列表视图中显示了设备的歌曲列表并录制开始/停止/播放。现在我想将该 .mp3 录制的文件转换为 .mp4 ,并且一个图像将代表该文件中的视频显示。帮助我实现这一点,我不知道,我参考了很多链接,但我没有找到任何东西。

【问题讨论】:

  • 回复:第二个示例,仅查看代码,在您分配 b=temp; 时,temp 的值是什么如果您的答案是“我不知道” ,你的公司很好,因为你的程序也没有。它调用未定义的行为
  • 它将返回 temp 变量的值,因为您分配 b=temp 然后打印第二个逻辑是错误的。
  • TBH int a=10 看起来不错,即使在课堂上也是如此。导致错误的最小程序是什么,确切的错误是什么?与其问 3 个不好的问题,每一个都漏掉很多,不如问 1 个好问题。
  • 这可能有助于您将帖子集中在一个问题上,并附上minimal reproducible example
  • 你以你的类命名一个成员函数???如果你想写一个构造函数:这些没有返回值,i。 e.你需要删除void。您可能更喜欢初始化列表而不是赋值:swap() : a(10), b(20) {}

标签: android-studio audio video android-mediaplayer converters


【解决方案1】:

第一个问题请查看此链接:
Why can't we initialize class members at their declaration?

通常构造函数用于初始化类的数据变量的值。

对于第二个问题: 如果创建对象后没有初始化数据成员,它将包含垃圾值。因此,根据您的需要初始化或分配合适的值。

查看以下代码:

#include<iostream>
using namespace std;

class swap_values
 {   
    int a, b, temp;
    public:
        swap_values(){
            a=0;b=0;temp=0;
        }
        swap_values(int x, int y){
              a = x;
              b = y;
              temp = 0;
           }

        void swapped()       
        {
            temp = b;
            b=a;
            a=temp;
        }
        void print(){
         cout<<"a: "<<a<<" b: "<<b<<endl;
         }
 };

int main()
{  
   int x =10; int y = 20;
   swap_values obj(x, y);
   obj.print();
   obj.swapped();
   obj.print();

   return 0;
}

【讨论】:

  • 有人可以帮忙解答这个问题吗?
【解决方案2】:

一切都可以以更好的方式完成,但只需使用您的代码,这对您有用 -

#include <iostream>

using namespace std;

class Swap  {

    private:
        int a,b,temp;

    public:

        Swap()
        {
            a=10;
            b=20;
            temp=0;
        }

        void swapNums()
        {
            temp=a; a=b; b=temp;
            cout<<a<<" " <<b<<endl;
        }
};

int main() {

    Swap s;
    s.swapNums();

    return 0;
}

你可以避免使用类名作为一些函数名。您可以改为使用没有返回类型的构造函数,您可以在其中初始化成员变量。 swap 方法看起来不错。

【讨论】:

    【解决方案3】:

    我无法在课堂上初始化我的变量。

     class swap
     {
          int a=10; \\cannot declare here
          int b=20; \\ cannot declare here
     }
    

    由于C++11,这很好,你可以有default member initialization
    错误是因为}后面缺少分号。

    为什么它与 b 有垃圾值??

    a=b;
    b=temp;
    temp=a;
    

    由于temp 在分配给b 之前从未初始化,因此temp 有一个不确定的值。 任何使用都会导致undefined behavior

    这是一个简单的交换struct

     struct Swap
     {
         int a = 10; // default member initialization
         int b = 20; // default member initialization
         Swap(int a = 20, int b = 10): a(b), b(a) {}; // swap on initialization
                                                      // using member initializer list
     };
    
     Swap s;
     std::cout << s.a // 20
               << s.b // 10
               << std::endl;
    

    在此示例中,由于member initializer list,默认成员初始化为“过时”/“冗余”。

    【讨论】:

    • 假设你现在应该提到,有了完整的构造函数,默认初始化就变得多余/过时了......
    • 有人可以帮忙解答这个问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-07
    • 2016-02-02
    • 1970-01-01
    相关资源
    最近更新 更多